Comentarios de programación de Windows para cada línea del programa
#include lt; windows.hgt; //Archivos de encabezado que deben incluirse en la programación de Windows
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); declaración, se utilizará en wndclass.lpfnWndProc = WndProc;
//La función principal es la función de entrada
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow )
{
static TCHAR szAppName[] = TEXT ("HelloWin"); //Asigna "HelloWin" a szAppName[]
HWND hwnd; /Definir un identificador de ventana para identificar la ventana
MSG msg; //Definir una estructura de mensaje que contiene varios datos del mensaje
WNDCLASS wndclass; // Definir una clase de ventana, que también es una estructura La siguiente declaración es para modificar los datos de la estructura
wndclass.style = CS_HREDRAW | CS_VREDRAW; // El modo de dibujo de la ventana es redibujado horizontal y vertical
wndclass.lpfnWndProc. = WndProc; //La función de devolución de llamada es la función declarada al principio
wndclass.cbClsExtra = 0; //La memoria adicional de la clase (extra), configurada si no es necesaria es 0
wndclass.cbWndExtra = 0; //Memoria adicional para la ventana, igual que arriba
wndclass.hInstance = hInstance; //La instancia actual es una instancia pasada por el sistema y solo puede estar en de esta manera, otros sistemas lo harán por usted
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION); //Carga el ícono ICON, NULL carga el ícono del sistema y el segundo parámetro es una identificación del icono en el sistema
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW); //Igual que arriba, pero cargando el cursor
wndclass.hbrBackground= (HBRUSH) GetStockObject (WHITE_BRUSH) ; //Establece que el fondo de la ventana es blanco
wndclass.lpszMenuName = NULL; //Debido a que no hay menú, configúrelo en vacío
wndclass.lpszClassName= szAppName; Elija una clase de ventana para la clase de ventana que diseñó Nombre
if (!RegisterClass (amp; wndclass)) //Registra la ventana que acaba de diseñar
{
MessageBox (NULL, TEXT ("¡Este programa requiere Windows NT!"),
szAppName, MB_ICONERROR); //Si el registro no se realiza correctamente, aparecerá un cuadro de mensaje y se mostrará el texto entre comillas. mostrado
devuelve 0
>
}
hwnd = CreateWindow( szAppName, // nombre de clase de ventana
TEXT ("El programa Hello"), // título de ventana
WS_OVERLAPPEDWINDOW, // estilo de ventana
CW_USEDEFAULT, // posición inicial x Los puntos X e Y predeterminados en la esquina superior izquierda de la ventana
CW_USEDEFAULT, // posición y inicial p>
CW_USEDEFAULT, // tamaño x inicial El ancho y alto de la ventana predeterminada
CW_USEDEFAULT, // tamaño y inicial
NULL, // el identificador de la ventana principal tiene no hay ventana principal
NULL, // el identificador del menú de la ventana no tiene menú y el identificador del menú está vacío
hInstance, // la instancia del programa maneja la instancia actual del programa, pasada por el sistema
NULL); // parámetros de creación
ShowWindow (hwnd, iCmdShow); //Mostrar ventana
UpdateWindow (hwnd); /p>
while (GetMessage (amp; msg, NULL, 0, 0)) // Bucle de mensajes, recibe el mensaje
{
TranslateMessage (amp; msg) ; // Traducir el mensaje,
DispatchMessage (amp; msg) ; // Distribuir el mensaje
}
return msg.wParam ; en el mensaje, el valor solo será 0 al salir del programa p>
}
//Definición de la función de devolución de llamada
LRESULT CALLBACK WndProc (HWND hwnd, UINT mensaje, WPARAM wParam, LPARAM lParam)
{
HDC hdc; //Definir el identificador de contexto del dispositivo
PAINTSTRUCT ps //Una estructura
RECT rect; //Definir un rectángulo
switch (mensaje)
{
case WM_CREATE: //El mensaje recibido se envía cuando se abre la ventana acaba de ser creado
PlaySound (TEXT (" hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC); //Reproducir sonido
return 0;
case WM_PAINT: //Mensaje recibido, la ventana cambia cuando
hdc = BeginPaint (hwnd, amp; ps); //Obtener el identificador de contexto del dispositivo
GetClientRect (hwnd, amp; rect); //Obtiene el rectángulo del área del cliente actual
p>DrawText (hdc, TEXT ("Hola, Windows 9)
8!"), -1, amp; rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER); //Emite el texto entre comillas y los siguientes parámetros definen su método de salida
EndPaint (hwnd, amp; ps); //Libera el identificador de contexto del dispositivo
return 0;
case WM_DESTROY: //Mensaje recibido cuando se destruye la ventana
PostQuitMessage (0); //Salir del programa
return 0;
}
return DefWindowProc (hwnd, message, wParam, lParam); /No se ha definido ningún procesamiento. El sistema procesa los mensajes del método de forma predeterminada
}