Entornos de Usuario.

Práctica 2.Desarrollo de aplicaciones Windows MFC.

Objetivos.

Crear una aplicación con el Visual C++, utilizando la arquitectura documento/vista.

Utilizar las funciones básicas de dibujo de windows.

Enunciado.

El objeto de la práctica es crear una versión muy sencilla de un programa tipo 'paint' donde es posible dibujar sobre la ventana diferentes figuras de diferentes colores y que los elementos que dibujamos se almacenen en memoria, de forma que no desaparecen en ningún momento.

Las figuras a dibujar serán de tres tipos: círculos, polilíneas y curvas de Bezier. Los colores de la figuras serán: rojo, verde y azul. Además en la parte superior de la ventana y centrado aparecerá un texto "Mi programa de dibujo" con el color activo en ese momento.

La interacción la aplicación será la siguiente:

Los botones del ratón nos permite interaccionar con la ventana y dibujar las figuras. Tendremos las siguientes interacciones:

Trabajo previo a la sesión de prácticas.

El alumno deberá acudir al laboratorio con la estructura de la práctica ya pensada en particular deberá tener en plantear dos cosas:

  1. ¿Qué eventos será necesario recoger, y cuál será la lógica de la aplicación? ¿En qué eventos almacenamos los datos (coordenadas, color activo, etc.) y dónde dibujamos las figuras?

  2. ¿Qué estructuras de datos y variables necesitamos crear para almacenar en memoria las figuras que va dibujando el usuario?. Hay que tener en cuenta que se pide una aplicación que almacene todas las figuras que se van dibujando, por lo tanto deberemos crear un array con todas las figuras creadas, sus coordenadas así como el color activo. Para simplificar la aplicación limitaremos el número de figuras que es posible dibujar a 100.

Desarrollo de la práctica.

Para empezar a desarrollar la aplicación se creará una aplicación de tipo MFC AppWizard. Esto nos creará una aplicación base que utilizará la arquitectura documento/vista. En la clase vista será donde introduzcamos todas las funciones para dibujar, así como los eventos de ratón a los que queremos que responda la aplicación.

Una vez creada la aplicación a la clase CView le añadiremos los eventos necesarios desde el classwizard:

A continuación añadiremos el código necesario: crearemos las estructuras de datos y definiremos las variables necesarias, e insertaremos el código dentro de los mensajes manejadores de los eventos.