Red de conocimiento informático - Conocimiento informático - Código fuente de Sun Xin

Código fuente de Sun Xin

# incluir & ltwindows.h & gt

#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.