Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Cómo hacer una interfaz en lenguaje C?

¿Cómo hacer una interfaz en lenguaje C?

Ventana vacía: #include?

/*?¿Todos los resultados de la ventana van aquí?*/

LRESULT?CALLBACK?WndProc (HWND ?hwnd,?UINT?Message,?WPARAM?wParam,?LPARAM?lParam)?{

switch(Message)?{

/*?Después de detenerse, informe al host Thread ¿detenido?*/

caso?WM_DESTROY:?{

PostQuitMessage(0);

descanso;

}

/*?¿Todos los demás mensajes se procesan utilizando el procedimiento predeterminado?*/

predeterminado:

return?DefWindowProc(hwnd,?Message,?wParam,?lParam);

}

return?0;

}

/*?La función principal del programa Win32?GUI: iniciar la ejecución desde aquí ? */

int?WINAPI?WinMain(HINSTANCE?hInstance,?HINSTANCE?hPrevInstance,?LPSTR?lpCmdLine,?int?nCmdShow)?{

WNDCLASSEX?wc;?/ * ?Estructura de atributos de la ventana?*/

HWND?hwnd;?/*?"Handle"?Identificador de una ventana?*/

MSG?Msg;?/*? ¿La ubicación temporal de todos los mensajes?*/

/*?¿Modificar la estructura y la configuración?*/

memset(&wc,0,sizeof(wc));

wc.cbSize ?=?sizeof(WNDCLASSEX);

wc.lpfnWndProc ?=?WndProc;?/*?¿Dónde enviar el mensaje?*/

wc. hInstance ?=?hInstance;

wc.hCursor ?=?LoadCursor(NULL,?IDC_ARROW);

/*?White, COLOR_WINDOW es el valor de color definido por el sistema, su valor es 5 ?*/

wc.hbrBackground?=?(HBRUSH)(COLOR_WINDOW+1);

wc.lpszClassName?=?"WindowClass";

wc .hIcon ?=?LoadIcon(NULL,?IDI_APPLICATION);?/*?¿Cargar un icono estándar?*/

wc.hIconSm ?=?LoadIcon(NULL,?IDI_APPLICATION);?/* ? ¿Usar el nombre "A" como icono del proyecto?*/

if(!RegisterClassEx(&wc))?{

MessageBox(NULL,?"Window?Registration?Failed!" ,"¡Error!",MB_ICONEXCLAMATION|MB_OK);

return?0;

}

hwnd?=?CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass"," Título",WS_VISIBLE|WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,?/*?x?*/

<

p> CW_USEDEFAULT,?/*?y?*/

640,?/*?Ancho?*/

480,?/*?Alto?*/

NULL,NULL,hInstance,NULL);

if(hwnd?==?NULL)?{

MessageBox(NULL,?"Window?Creation?Failed!" ,"Error!",MB_ICONEXCLAMATION|MB_OK);

return?0;

}

/*

Todo el procesamiento de entrada y enviado al procedimiento de ventana.

Tenga en cuenta que este código de bloque fluye hasta que recibe algo, ?

por lo que el bucle no crea un uso excesivamente alto de la CPU. ?

*/

while(GetMessage(&Msg,?NULL,?0,?0)?>?0)?/*?Si no se recibe ningún error...* /

{

TranslateMessage(&Msg);?/*?Si el carácter clave de traducción existe*/

DispatchMessage(&Msg);?/*?Send a WndProc?*/

}

return?Msg.wParam;

}