#include <windows.h>
#include "ids.h"
LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM); // Esto es una funcion
void InsertarMenu(HWND);
int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevinstance,
LPSTR lpszCmdParam, int nCmdShow) {
HWND ventana;//manipulador para la ventana principal de la aplicacion
MSG mensaje; // es una VARIABLE para manipular los mensajes que lleguen a nuestra aplicacion
WNDCLASSEX wincl; // declaramos la estructura wincl para registrar la clase particular de ventana a usar
HMENU hMenu;
wincl.hInstance = hThisInstance;
wincl.lpszClassName = "Mi_clase";
wincl.lpfnWndProc = WindowProcedure;
wincl.style = CS_DBLCLKS;
wincl.cbSize = sizeof(wincl);
//wincl.lpszMenuName = "MenuID";
//usar icono y puntero por defecto
wincl.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
wincl.hCursor = LoadIcon(NULL, IDC_ARROW);
wincl.lpszMenuName = NULL;
wincl.cbClsExtra = 0;
wincl.cbWndExtra = 0;
wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
//registrar la clase de hwnd si falla salir del programa
if(!RegisterClassEx(&wincl)) return 0;
ventana = CreateWindowEx(
0,
"Mi_clase",
"Ejemplo 01",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
544,
375,
HWND_DESKTOP,
NULL,//LoadMenu(hThisInstance,"MenuID"),
hThisInstance,
NULL);
hMenu = LoadMenu(hThisInstance,"MenuID");
SetMenu(ventana,hMenu);
ShowWindow(ventana,nCmdShow);
//Bucle de mensajes
while(TRUE== GetMessage(&mensaje,NULL,0,0))
{
TranslateMessage(&mensaje);
DispatchMessage(&mensaje);
}
return mensaje.wParam;
}
LRESULT CALLBACK WindowProcedure(HWND ventana, UINT mensaje,WPARAM wParam,LPARAM lParam){
switch (mensaje)
{
case WM_COMMAND:
switch(LOWORD(wParam)){
case CM_PRUEBA:
MessageBox(ventana,"Comando: Prueba","Mensaje de Menu",MB_OK);break;
case CM_DIALOGO:
MessageBox(ventana,"Habia una rata llamada ratatouille que era francesa","Mensaje de Menu",MB_OK);break;
case CM_SALIR:
MessageBox(ventana,"Comando: Salir","Mensaje de Menu",MB_OK);break;
PostQuitMessage(0); break;
}
break;
case WM_DESTROY:
PostQuitMessage(0);break;
default:
return DefWindowProc(ventana,mensaje,wParam,lParam);
}
return 0;
}