Código fuente de Sun Xin
#pragma comment(lib, "user32.lib")
#pragma comment(lib, "Gdi32.lib")
Devolución de llamada LRESULT WndProc(
HWND hwnd
, mensaje UINT
, WPARAM wParam
, LPARAM lParam
);
HWND hWnd//Manejador de ventana, definido como global.
int WINAPI WinMain(h instancia h instancia,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
MSG MSG;
WNDCLASS wnd
wnd estilo = 0;
. wnd .cbclsextra = 0; //Debe ser 0
wnd .
wnd.hbrbackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //Color de relleno de fondo
wnd.hCursor = LoadCursor(NULL, IDC_ARROW); //Cursor, use el cursor predeterminado; parámetro 1 como NULL.
wnd.hIcon = LoadIcon(NULL,IDI_exclamation mark); //Icono
wnd.h instancia = h instancia; //Manejar
wnd. = WndProc//Procesamiento de mensajes
wnd .lpsz class name = "XP"; //Nombre de clase
wnd.lpszMenuName = NULL//Nombre del menú
registrar clase(&wnd);//Registrar
HWnd = CreateWindow("XP", "Ventana", ws _ ventana superpuesta, 100, 100, 500, 500, nulo, rápido, nulo); //Crea una ventana, consulta MSDN.
ShowWindow(hWnd, SW_show normal); //Mostrar
Ventana de actualización(hWnd); //Ventana de actualización
while(GetMessage(& amp ; msg) , NULL, 0, 0))
{//Bucle de mensajes
Traducir mensaje (& amp msg);
enviar mensaje(amp; msg );
}
Devuelve 0;
}
/*LRESULT ventana de devolución de llamada Proc(HWND hwhd, uMsg, WPARAM wParam, LPARAM IParam )
Definición de la función de respuesta al mensaje
El identificador de la ventana.
UMsg: Especifica el tipo de mensaje.
WParam:Mensaje
IParam:Mensaje*/
Devolución de llamada LRESULT WndProc(
HWND hwnd
, Mensaje UINT
, WPARAM wParam
, LPARAM lParam
)
{
switch(mensaje)
{
Caso WM_CLOSE:// Cerrar
If(MessageBox(hWnd, "Salir", "Preguntar", MB_YESNO)==IDYES)//Usar Cuadro de mensaje global.
PostQuitMessage(0); //Agregar WM_QUIT a la cola de mensajes
Pausa;
Case WM_KEYDOWN:// Al presionar el teclado, se generará un tipo de mensaje. Relativamente completo.
Switch(wParam)
{
Keith VK_UP:
MessageBox(hWnd, "arriba", "abajo", MB _ OK);
Caso VK_rButton:
MessageBox(hWnd, "botón derecho del mouse", "presionar", MB_OK);
Romper ;
Caso VK_Menu:
MessageBox(hWnd, "Alt", "Press", MB_OK);
Pausa;
Caso VK_END:
MessageBox(hWnd, "END", "presione", MB_OK);
Romper
Caso VK_LEFT:
MessageBox(hWnd, " izquierda", "presionar", MB_OK);
Pausa;
KEIS VK_RIGHT:
MessageBox(hWnd, "derecha", "presionar", MB_OK)
Romper;
KEIS VK_TANG:
MessageBox(hWnd, "abajo", "presionado", MB_OK);
Caso VK_Control:
MessageBox(hWnd , "Ctrl", "presionar", MB_OK);
Romper;
Caso VK_Jailbreak:
MessageBox(hWnd, "Esc", "press",MB_OK);
//PostQuitMessage(0);
Romper;
Caso VK_SHIFT:
MessageBox (hWnd, "SHIFT", "press", MB_OK
Break
Predeterminado: break
; p>}
Valor predeterminado:
Return DefWindowProc(hwnd, message, wParam, lParam); //Procesamiento predeterminado
}
return(0);
}
Sin definición externa...
MFC es un archivo de aplicación win32 estándar.
DLL es una biblioteca de enlaces dinámicos,
Archivo de enlace
Puedes usar clases para crear ventanas encapsuladas.
También MFC.
Puede agregar el archivo de encabezado afxwin.h para llamar a la biblioteca mfc.
La idea semi-orientada a objetos de C++ mfc también encapsula datos básicos.
Si no tienes una base C, es posible que no estés familiarizado con ella.
Para algunas funciones que no pueden pasar parámetros, consulte MSDN.