Cómo implementar una interfaz gráfica en VC++
Cree un proyecto mfc y luego implemente las funciones que desee
Pasos:
1.
¿Nuevo? ¿Seleccionar la pestaña del proyecto?
2.
Seleccione MFC AppWizard (exe), complete la información relevante y haga clic en Aceptar
Haga clic en Ejecutar, aparecerá la interfaz gráfica, abra el diseño de la ventana archivo y agréguelo Controles en la parte superior y así sucesivamente.
¡Olvídalo! #pragma?comment(linker,"/SUBSYSTEM:Windows?/ENTRY:mainCRTStartup")
#include?
/*?Hacer que el nombre de la clase sea global variable ?*/
TCHAR?szClassName[?]?=?TEXT("WindowsApp");
/*?Esta función es llamada por la función interna de Windows DispatchMessage()? */
¿RESULTADO?DEVOLUCIÓN DE LLAMADA?Procedimiento de ventana?(HWND?hWnd,?UINT?mensaje,?WPARAM?wParam,LPARAM?lParam)
{
HDC ?hdc? ;
PAINTSTRUCT?ps?;
RECT?rect?;
¿interruptor?(mensaje)?/*?Procesando información?*/
{
caso?WM_DESTROY:
¿PostQuitMessage?(0);?/*?¿Enviar WM_QUIT a la cola de mensajes?*/
romper;
caso?WM_PAINT:
hdc?=?BeginPaint?(hWnd,?&ps)?;
GetClientRect?(hWnd,?&rect) ?;
p>DrawText?(hdc,?TEXT("¡Hola,?Windows?NT!"),?-1,?&rect,?DT_SINGLELINE?|?DT_CENTER?|?DT_VCENTER)?;
EndPaint?(hWnd,?&ps)?;
romper?;
predeterminado:?/*?¿Mensaje no procesado?*/
regresar?DefWindowProc?(hWnd,?message,?wParam,?lParam);
}
return?0;
}
/ *?La siguiente es la función principal?*/
int?main?(?void?)
{
HINSTANCE?hThisInstance ?=?GetModuleHandle(NULL) ?;
int?nFunsterStil?=?SW_SHOW?;
HWND?hWnd;?/*?¿Este es el identificador de la ventana?*/
MSG?mensajes;/*?¿Aquí se guardan los mensajes de la aplicación?*/
WNDCLASSEX?wincl;/*?La estructura de datos de la clase de ventana?*/
/*?La estructura de la ventana? */
wincl.hInstance?=?hThisInstance;
wincl.lpszClassName?=?szClassName;
wincl.lpfnWndProc?=?WindowProcedure;/*? ¿Esta función es llamada por el sistema operativo Windows?*/
wincl.style?=?CS_DBLCLKS;?/*?¿Obtener el comando de doble clic?* /
wincl.cbSize?=?sizeof? (WNDCLASSEX);
/*?¿Usar el icono y el puntero del mouse predeterminados?*/
wincl.hIcon? =?LoadIcon?(NULL,?IDI_APPLICATION);
wincl.hIconSm?=?LoadIcon?(
NULL,?IDI_APPLICATION);
wincl.hCursor?=?LoadCursor?(NULL,?IDC_ARROW);
wincl.lpszMenuName?=?NULL;?/*?¿No hay menú? */
wincl.cbClsExtra?=?0;/*?¿No hay bytes adicionales después de la clase de ventana?*/
wincl.cbWndExtra?=?0;/*? ¿Estructura o instancia de ventana?*/
/*?¿Usar el color predeterminado de la ventana como color de fondo de la ventana?*/
wincl.hbrBackground?=?(HBRUSH)?COLOR_BACKGROUND;
p>/*?Registrar clase de ventana. Si el registro falla, ¿salga del programa?*/
if?(!RegisterClassEx?(&wincl))
return?0;
/*?Window The La clase ha sido registrada. ¿El programa que lo creó?*/
hWnd?=?CreateWindowEx?(
0,
szClassName,/*?Class name?*/ p >
TEXT("Windows?App"),/*?Texto de la barra de título de la ventana?*/
WS_OVERLAPPEDWINDOW,?/*?Ventana predeterminada?*/
CW_USEDEFAULT ,?/*?La posición de la esquina superior izquierda de la ventana?*/
CW_USEDEFAULT,?/*?La posición de la esquina inferior derecha de la ventana?*/
544,?/*?Ancho de la ventana (¿Alto de la ventana (en píxeles)?*/
375,?/*?Alto de la ventana (en píxeles)?*/
HWND_DESKTOP ,/*?La ventana es una subventana del escritorio?*/
NULL,/*?¿Esta ventana no tiene menú?*/
hThisInstance,?/*?The ¿identificador de la instancia del programa?*/
NULL?/*?¿No hay datos para la creación de la ventana?*/
);
/*?¿Mostrar ventana? */
ShowWindow?( hWnd,?nFunsterStil);
/*?¿Volver a dibujar la ventana?*/
UpdateWindow(hWnd);
/*?Ejecute el bucle de mensajes. Vaya a la función GetMessage() y devuelva 0?*/
while?(GetMessage?(&messages,?NULL,?0,?0))
{
/*?¿Traducir mensajes virtuales a mensajes de caracteres?*/
TranslateMessage(&messages);
/*?¿Enviar mensajes a procedimientos de ventana?*/
DispatchMessage(&messages);
}
/*?¿Devolver el valor de retorno de la función PostQuitMessage()?*/
return?messages.wParam ; p>
}