Red de conocimiento informático - Computadora portátil - 1. Cuando uso VC 6.0 para crear una ventana, mis pasos son los siguientes (siguiendo el tutorial de Sun Xin).

1. Cree una nueva aplicación de proyecto win32.

1. Cuando uso VC 6.0 para crear una ventana, mis pasos son los siguientes (siguiendo el tutorial de Sun Xin).

1. Cree una nueva aplicación de proyecto win32.

#include lt;windows.hgt;

#pragma comment(lib,"user32.lib")

#pragma comment(lib,"Gdi32. lib")

LRESULT CALLBACK WndProc(

HWND hwnd

, mensaje UINT

, WPARAM wParam

, LPARAM lParam

);

HWND hWnd; // Identificador de ventana, definido como global

int WINAPI WinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR lpCmdLine,

int nCmdShow

)

{

MSG msg;

WNDCLASS wnd;

wnd.style = 0;

wnd.cbClsExtra = 0; //debe ser 0

wnd.cbWndExtra = 0; //Ambos son 0

wnd.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //Color de relleno de fondo

wnd.hCursor = LoadCursor(NULL, IDC_ARROW); //Cursor, use el parámetro de cursor predeterminado, uno es NULL

wnd.hIcon = LoadIcon(NULL, IDI_EXCLAMATION); //Icon

wnd.hInstance = hInstance; //Handle< / p>

wnd.lpfnWndProc = WndProc; //Procesamiento de mensajes

wnd.lpszClassName = "XP"; // Nombre de clase

wnd.lpszMenuName = NULL; Nombre del menú

RegisterClass(amp; wnd); //Registro

hWnd = CreateWindow("XP", "Ventana", WS_OVERLAPPEDWINDOW, 100, 100, 500, 500, NULL, NULL, hInstance, NULL); //Crear ventana, consulte MSDN

ShowWindow(hWnd, SW_SHOWNORMAL); //Mostrar

UpdateWindow(hWnd); p>

while(GetMessage(amp; msg, NULL, 0, 0))

{//Bucle de mensajes

TranslateMessage(amp; msg);

Mensaje de envío(amp;msg);

}<

/p>

devuelve 0;

}

/*LRESULT CALLBACK WindowProc(HWND hwhd, uMsg, WPARAM wParam, LPARAM IParam)

Respuesta del mensaje Definición de función

hwnd: identificador que apunta a la ventana.

uMsg: Especifica el tipo de mensaje.

wParam: mensaje

IParam: mensaje */

LRESULT CALLBACK WndProc(

HWND hwnd

, Mensaje UINT

, WPARAM wParam

, LPARAM lParam

)

{

switch(mensaje)

{

case WM_CLOSE: //Cerrar

if(MessageBox(hWnd, "Si salir", "Preguntar", MB_YESNO)==IDYES)/ / Usa el cuadro de mensaje global

PostQuitMessage(0); //Agrega WM_QUIT a la cola de mensajes

break;

case WM_KEYDOWN: //El teclado es presionado tipo de tipo de mensaje, MFC será más completo

switch(wParam)

{

case VK_UP:

MessageBox( hWnd, "Arriba", "presionado", MB_OK);

case VK_RBUTTON:

MessageBox(hWnd, "botón derecho del mouse", "presionado", MB_OK); >

romper;

caso VK_MENU:

MessageBox(hWnd, "Alt", "Presionado", MB_OK

romper; >

caso VK_END: ​​​​

MessageBox(hWnd, "END", "Presionado", MB_OK

break

caso VK_LEFT);

MessageBox(hWnd, "izquierda", "presionado", MB_OK);

break

case VK_RIGHT:

MessageBox( hWnd, "derecha", "presionar", MB_OK);

romper

case VK_DOWN:

MessageBox(hWnd, "abajo", "presionar" , MB_OK);

romper

caso VK_CONTROL:

MessageBox(hWnd, "Ctrl", "presionar", MB_OK); p> romper;

caso VK_ESCAPE:

MessageBox(hWnd, "Esc", "Presionado", MB_OK

// PostQuitMessage(0);

descanso;

caso VK_SHIFT:

MessageBox(hWnd, "SHIFT", "Presionado", MB_OK);

descanso

predeterminado:

}

predeterminado:

return DefWindowProc(hwnd, message, wParam, lParam //Procesamiento predeterminado

}

return(0);

<); p>}

Sin definición externa...

MFC es un archivo de aplicación win32 estándar

DLL es una biblioteca de enlaces dinámicos,

Archivo de conexión

Puedes usar clases para crear ventanas encapsuladas

Lo mismo ocurre con MFC

Puedes agregar el archivo de encabezado afxwin.h al mfc biblioteca La idea mfc semi-orientada a objetos de C llamada

también encapsula datos básicos.

Si no tiene una base de C y no está familiarizado con ella, es posible que no pueda hacer progreso fluido

Para algunas funciones que no pueden pasar parámetros, consulte MSDN