Apunte de Visual C++
Por: Demian C. Panello
[email protected]
Capítulo I
Indice rápido del capítulo 1:
Hola Visual C++.
Ventana WorkSpace.
Propiedades de un control.
MFC ClassWizard. (agregar función miembro).
Función MessageBox().
INTRODUCCIÓN:
El entorno de desarrollo de VC++ 6.0 ofrece muchas posibilidades al programador, desde crear aplicaciones de diversos
formatos y características, pasando además por la creación de librerías DLL, iconos, bitmaps, cursores, etc.
Todo el IDE, (entorno de desarrollo), en conjunto es una gran "cocina" para desarrollar las aplicaciones más versátiles tanto
para entorno Windows como DOS.
Es importante aclarar que cuando se pretende crear una aplicación que corra bajo Windows con VC++ se debe tener en
cuenta si la misma estará basada en MFC o si será una aplicación WIN 32 estándar.
Microsoft Foundation Class (MFC):
Visual C++ se suministra junto con la biblioteca MFC que es un conjunto de clases predefinidas de C++. Estas clases han
pasado a ser un estándar de desarrollo para aplicaciones Windows y poseen clases que facilitan mucho la programación en
C++, por ejemplo al incluir un tipo de dato CString para declarar cadenas; cosa que no existe en C y siempre es un dolor de
cabeza.
También se pueden crear programas Windows que no usen MFC, así se obtendría una aplicación con la cual no haría falta
distribuir la librería MFC.
"HOLA VISUAL C++":
Para introducirse en un nuevo lenguaje no hay como un buen ejemplo y éste históricamente fue y es el famoso "Hola
Mundo".
Para comenzar a desarrollar esta pequeña aplicación ingresamos en VC++, luego seleccionamos NEW en el menú FILE y
aparecerá la siguiente pantalla:
Esta pantalla muestra los distintos proyectos que uno puede desarrollar con VC++. Como queremos hacer una aplicación
basada en MFC seleccionaremos MFC AppWizard (exe). En VC++ como en VB se trabaja con PROYECTOS, a su vez
éstos en VC++ se agrupan en WORKSPACES ("espacios de trabajo"). Entonces en Project Name escribimos el nombre de
nuestro proyecto, HolaVC, en Location por defecto se establecerá la ruta de nuestro nuevo WORKSPACE y será
ARCHIVOS DE PROGRAMA\Microsoft Visual Studio\MyProjects\HolaVC. (esta opción se puede modificar).
Una vez ingresado el nombre del proyecto veremos que el botón OK ya está activo si lo pulsamos damos inicio al
ASISTENTE DE APLICACIONES MFC el cual nos creará un armazón de programa que después habrá que adecuar (algo
así como la ventana por defecto que trae VB cuando uno crea un proyecto).
Nos aparece la siguiente ventana:
Una aplicación de Windows puede ser SDI (Single Document Interface), MDI (Multiple Document Interface) o Dialog
Based (basada en dialogos) . Single Document es muy similar a Dialog Based, salvo que por defecto VC le agrega menúes y
MDI es una aplicación como por ejemplo Word, con una ventana principal que puede contener a muchas otras en su interior
(como un contenedor).
Ahora seleccionaremos Dialog Based y como lenguaje de recursos (recursos es algo que más adelante se explica en detalle)
dejaremos por defecto Spanish, salvo que pretendamos que nuestra aplicación se use en Alemania entonces
seleccionaríamos German..., : ) éste no será nuestro caso. Luego de todo esto presionamos NEXT para pasar a la siguiente
pantalla:
Esta pantalla nos pregunta que características le queremos agregar a nuestra aplicación, About Box, Context Sensitive Help
(un botón que llame a un archivo de ayuda), 3D Controls, dejemos todo como está, y pasemos a la siguiente ventana
pulsando nuevamente NEXT.
Aquí se nos está diciendo que se creará un proyecto MFC Standard y además se nos pregunta si deseamos o no que el
código fuente generado automáticamente por éste asistente esté comentado; obviamente dejamos YES, PLEASE porque
esos comentarios son muy útiles para no perderse.
También debemos especificar como queremos usar la librería MFC con el ejecutable: como DLL compartida (dinámica) o
como librería estática. Dejemos la primer opción pues es común en Windows que las aplicaciones funcionen de esta forma,
no obstante si seleccionamos como librería estática, obtendremos un ejecutable más grande.
Si pulsamos NEXT accedemos a la última pantalla de este asistente que nos ofrece la posibilidad de cambiar los nombres de
las clases que está a punto de crear, esto habitualmente no se modifica.
Pulsamos FINISH y se muestra una listado con las características del armazón de aplicación que el asistente está por hacer,
OK y listo.
El asistente nos generó la base de una aplicación que consta de una ventana con dos botones (aceptar y cancelar) con un
texto en el centro y además otra ventana (más pequeña), el Acerca de....
Este "armazón" es totalmente funcional, podemos ejecutar el programa haciendo click en el icono con el signo de
exclamación ! o precionando Ctrl + F5, nos dirá que el subdirectorio DEBUG de nuestra aplicación no existe y si deseamos
crearlo, decimos que YES y tenemos el programa en ejecución. Nos informó de la falta de la carpeta DEBUG por ser la
primera vez en ejecutar el programa y esta carpeta se crea ya que por defecto todas la aplicaciones en desarrollo en VC++
contienen información de depuración, que nos permite depurar el programa poniendo puntos de interrupción, ejecutando
paso a paso, etc., pero cuando terminemos nuestra aplicación y se la entreguemos al usuario ésta no debe contener
información de depuración pues hará que descienda su performance y el ejecutable sea más grande. Para quitar la
información de DEBUG (sólo cuando tengamos la aplicación terminada), vamos a la opción SET ACTIVE
CONFIGURATION.. del menú BUILD y seleccionamos RELEASE.
En el entorno de desarrollo se nos presenta a la izquierda, una ventana que tiene 3 solapas:
Class View, Resource View y File View.
Seleccionando la solapa Class View, podremos ver que dice HolaVC classes, si expandimos esta descripción haciendo click
en él +, se desplegarán las clases, (generadas por el asistente) que forman mi aplicación: CAboutDlg, la clase de la ventana
AboutBox, CHolaVCApp, la clase aplicación que existe en todas las aplicaciones y CHolaVCDlg, la clase de la ventana
principal (la que contiene los botones Aceptar y Cancelar, y donde luego agregaremos un botón más).
Además hay una carpeta llamada Globals donde se agrupan las variables globales.
Las clases a su vez contienen más cosas: Funciones miembro y variables miembros. Precisamente gran parte del código que
uno escribe en VC++ se trata de nuevas funciones miembros que uno agrega a las clases existentes.
En todo lenguaje de programación visual, sea VB o VC++, se tiene un lugar del IDE donde uno puede diseñar el aspecto
visual de la aplicación y otro donde uno puede escribir el código necesario para los objeto diseñados de manera tal que las
cosas respondan de acuerdo a lo que uno quería. En VC++ se accede al lugar donde se lleva a cabo el diseño seleccionando
la solapa RESOURCE (recursos) de la ventana WORKSPACE, (la de la izquierda donde además están todas las clases).
Al seleccionar RESOURCE se podrá observar varias carpetas Dialog, Icon, String Table y Version. Expandiendo la carpeta
Dialog veremos IDD_ABOUTBOX y IDD_HOLAVC_DIALOG estas son las dos ventanas "diálogos" creados
automáticamente por el Asistente de Aplicaciones. Nosotros modificaremos IDD_HOLAVC_DIALOG, entonces hacemos
doble click en el mismo y se nos mostrará la ventana con los dos botones por defecto "Aceptar" y "Cancelar" lista para
modificar.
La pantalla debería presentar más o menos lo siguiente:
Primero marcamos con el mouse el texto "A HACER:..." y lo eliminamos presionando la tecla suprimir. Luego de la barra
de herramientas seleccionamos un botón y lo colocamos en algún lugar del cuadro de diálogo. (por lo pronto no toque los
botones Aceptar y Cancelar que están por defecto).
Luego que tenemos un nuevo botón, ahora hay que modificar algunas de sus propiedades, por ejemplo la propiedad Caption
que por defecto es button1.
Para acceder a las propiedades de los controles hacemos click con el derecho sobre el control, en este caso el botón, y
seleccionamos del menú contextual, "propiedades".
En la solapa General de la pantalla propiedades podremos modificar, entre otras cosas, la propiedad Caption (que es el texto
que muestra el botón), y la propiedad ID, la cual es muy importante ya que con ese valor se reconocerá al botón al escribir
código.
Primero modifique la propiedad Caption y escriba "Pulseme"; tambien modificaremos el ID, pues el que tiene por defecto no
es muy representativo de lo que el botón realizara. Escriba IDC_PULSEME (por convención se recomienda dejar el prefijo
IDC_ y luego escribir algo que represente la utilidad del control.
No altere el resto de las propiedades, pues por ahora no las necesitamos, aún así si lo desea puede seleccionar las restantes
solapas y observar que otras propiedades puede modificar.
Nuestra idea es que, al pulsar el botón "Pulsame", se muestre el mensaje: "HolaVC", por ejemplo a través de un cuadro de
mensaje. Para esto hay que tener en cuenta que se necesita una función que maneje la acción de "pulsar el botón", en
Windows esta función así como muchas otras (mover el mouse, tocar una tecla del teclado, hacer doble click, etc), se
denominan "Mensajes", pues estas acciones son precisamente mensajes entre las ventanas, que uno tiene que interceptar de
alguna forma.
Existen muchas formas de crear un manejador de mensajes, pero habitualmente se hace click con el derecho del mouse sobre
el control al cual se quiere crear un manejador y se selecciona la opción "ClassWizard". También se puede acceder a
ClassWi
Comentarios de: Apunte de VC++ 6 (0)
No hay comentarios