Manual Grafico de c++

Anuncio
Tutorial de c++ grafico
por BlackShadow7777
Vamos a aprender como hacer una ventana en c++ sin muchos rollos:
Seleccionas nuevo proyecto y allí win32 aplicación
Luego en las selecciones que dicen:
• An Empty Project
• A simple Win32 app
• A typical “Hello World” app
Selecciona la segunda, o sea simple win32 app
Quedara el siguiente codigo:
#include "stdafx.h"
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int
nCmdShow)
{
// POR HACER Agregar código aca.
return 0;
}
Bueno ya esto al compilar no debe dar error, para mas seguridad podemos compilar y
ver que pasa.
La parte Izquierda es el área de trabajo donde podemos ver las clases, podemos
observar a WinMain que como se puede traducir significa VentanaPrincipal, a
continuación del lado derecho de la foto podemos ver el código de la clase WinMain.
En la parte inferior del visor de área de trabajo de clases podemos ver unas tabs o
viñetas la cual cambia la forma de ver las clases.
Se puede apreciar ClassView y FileView, la primera es la vista que teníamos por defecto
y la segunda es la vista de archivos.
Ahora vamos a hacer clic arriba en la barra general de visual estudio en File y luego en
New como si fuéramos a hacer otro proyecto, aparecerá este cuadro:
Seleccionamos Resource Script y colocamos un nombre, puede ser “recursos” luego
nos aparecerá una carpeta del lado derecho.
Al hacer clic derecho en esa carpeta aparecerá una lista, y una de las opciones es insert,
le damos allí y aparece otra lista de recursos a insertar, escogeremos Dialog dándole
doble clic, por ahora no tocaremos nada y salvaremos.
Ahora podemos ver un Common Dialog o control común de dialogo parecido a un form
de visual Basic o una ventanita de Windows, antes de salir de allí y continuar le
cambiaremos el nombre dandole doble clic en el área rectangular. El nuevo nombre será:
IDD_MAIN, el nombre por defecto era: IDD_DIALOG, ahora será: IDD_MAIN.
Por lo pronto no modificaremos nada y aconsejo no modificar nada ya que trabajaremos
con esos dos botones.
Ahora grabamos y continuamos haciendo clic en Project -->Add to Project -->Files,
Deberíamos haber quedado en el directorio donde estamos trabajando y ver el archivo
resource.h, lo seleccionamos y lo agregamos, cerramos la ventana actual o
sencillamente damos doble clic sobre el código de nuestra ventana o clase principal
WinMain para agregar #include "resource.h" al código.
Nuestro código debe estar viéndose así:
Agregaremos este código al final del código actual:
LRESULT CALLBACK DlgProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM
lparam)
{
switch (msg)
{
case WM_CLOSE:
{
PostQuitMessage(0);
}
}
return false;
}
Este código es el que toma las señales o eventos de nuestra futura aplicación y también
agregamos esta línea debajo de #include “resource.h”:
LRESULT CALLBACK DlgProc(HWND hwnd, UINT msg, WPARAM wparam,
LPARAM lparam);
EL código de arriba debe tener ; al final ahora el código debería verse así:
Se puede observar en la parte izquierda que aparece una nueva clase, la cual es la que
acabamos de incorporar.
Ahora el toque final, ya teniendo la ventana, la carpintería y el llamado de eventos solo
nos faltan algunos detalles, y entre estos detalles esta el llamado al cuadro de dialogo
común el cual tiene la interfaz grafica que queremos que se vea, para eso debemos
agregar este código en la línea donde dice “TODO: Place code here / POR HACER:
Agregar código”, o sea en todo el medio de la clase WinMain y arriba de return 0;
DialogBox(hInstance, (LPCTSTR)IDD_MAIN, 0, (DLGPROC) DlgProc);
Ahora a compilar y ver que pasa…
Si obtenemos 0 errores entonces ejecutamos a ver que vemos. Debe aparecer nuestra
bella ventanita con dos botones nada funcionales pero que ya vamos a arreglar.
Ahora hacemos doble clic en la ventanita para ver las propiedades de resource como se
ve en la imagen:
Una vez allí podemos escoger la viñeta de minimizar (Minimize box) y agregamos un
nuevo caso a nuestra clase de captura de eventos para q capture comandos:
case WM_COMMAND:
{
if(LOWORD(wparam) == IDOK)
{
MessageBox(hwnd,"vas a salir","titulo",MB_OK);
}
break;
}
El código debería verse algo así:
Ahora con eso que colocamos podemos ver que hemos hecho un msgbox como en
Basic, podemos personalizar y agregar este último caso que será el de el tamaño e inicio
del formulario o ventana:
case WM_INITDIALOG:
{
double ScreenX=0;
double ScreenY=0;
double WinX=0;
double WinY=0;
RECT wnd;
GetWindowRect(hwnd, &wnd);
WinX = wnd.right - wnd.left;
WinY = wnd.bottom - wnd.top;
ScreenX = GetSystemMetrics(SM_CXSCREEN);
ScreenY = GetSystemMetrics(SM_CYSCREEN);
ScreenX = ((ScreenX * .95) / 2) - ((int)WinX / 2);
ScreenY = (ScreenY / 2) - ((int)WinY / 2);
SetWindowPos(hwnd,HWND_TOPMOST,
(int)ScreenX,(int)ScreenY,(int)WinX,(int)WinY,NULL);
}
SetWindowText(hwnd,"Hey esto es el titulo");
return true;
El codigo quedara asi:
Bueno ahora lo mismo que antes…
A compilar.
AGRADECIMIENTOS y AUTORES:
Este tuto ha sido hecho por Blackshadow7777
A partir de:
Tutorial on switching from vb to c++
Copyright: © 2003 Jaime Muscatelli
Website: www.jprogs.cjb.net
por Jaime Muscatelli
"C++ for VB programmers", Morrison, Apress press.
“Visual C++ Programing”, Arpet Forter, Mc Darsh.
Diversas fuentes de Internet.
Descargar