¿Puede algún amigo darme una introducción detallada a los pasos específicos de la programación de un subprograma de Windows específico? ¡Gracias!
1. Primero escriba una función winmain y defina un objeto de clase de ventana (wndclass)
2. Inicialice los parámetros del objeto de ventana
3. Función, crear ventana
4. Llamar a la función showwindow, actualizar la función de ventana
5. Luego escribir la función de procedimiento de ventana
El programa de ventana más simple
#include lt;windows.hgt;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{ p >
MessageBox (NULL, TEXT ("¡Hola, Windows 98!"), TEXT ("HelloMsg"), 0
return
}
p>
Programa de ventana
#include lt;windows.hgt;
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT (" HelloWin");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc; //Puntero de función
wndclass.cbClsExtra = 0
wndclass.cbWndExtra = 0; .hInstance = hInstance;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW);
wndclass. hbrBackground = (HBRUSH ) GetStockObject (WHITE_BRUSH);
wndclass.lpszMenuName = NULL
wn;
dclass.lpszClassName = szAppName;
if (!RegisterClass (amp; wndclass))
{
MessageBox (NULL, TEXT ("Este programa requiere Windows NT !"),
szAppName, MB_ICONERROR);
devuelve 0;
}
hwnd = CreateWindow (szAppName, // ventana nombre de clase
TEXT ("El programa Hello"), // título de ventana
WS_OVERLAPPEDWINDOW, // estilo de ventana
CW_USEDEFAULT, // posición x inicial
CW_USEDEFAULT, // posición y inicial
CW_USEDEFAULT, // tamaño x inicial
CW_USEDEFAULT, // tamaño y inicial
NULL, // identificador de la ventana principal
NULL, // identificador del menú de la ventana
hInstance, // identificador de la instancia del programa
NULL // parámetros de creación
ShowWindow (hwnd, iCmdShow);
UpdateWindow (hwnd)
while (GetMessage (amp; msg, NULL, 0, 0))
{
Traducir mensaje (amp; mensaje);
DispatchMessage (amp; mensaje);
/p>
return msg.wParam;
}
LRESULT CALLBACK WndProc (HWND hwnd, mensaje UINT, WPARAM wParam, LPARAM lParam) //Función de procedimiento de ventana
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
cambiar (mensaje)
{
caso WM_CREATE:
devolver 0;
caso WM_DESTROY:
PostQuitMessage (0);
devuelve 0;
}
devuelve DefWindowProc (hwnd, mensaje, wParam, lParam);