Red de conocimiento informático - Computadora portátil - Problema de programación de C Windows, ¿cómo recibir el mensaje de que se hace clic en el botón en una ventana?

Problema de programación de C Windows, ¿cómo recibir el mensaje de que se hace clic en el botón en una ventana?

Primero asigne una ID al botón y luego guarde su identificador (HWND estático) al crear. Escriba la función de respuesta en el mensaje WM_COMMAND y use el interruptor para seleccionarla. El siguiente código: #define BUTTON_ID 10011 //ID del botón

LRESULT CALLBACK WndProc(HWND hwnd, mensaje UINT, WPARAM wp, LPARAM lp)

{

HDC hdc;

PAINTSTRUCT ps;

estático HWND btnWnd;

estático bool flag=false;

cambiar(mensaje)

{

caso WM_CREATE: btnWnd =CreateWindow("Botón","Botón",WS_VISIBLE|WS_CHILD,

10, 10, 150, 120, hwnd, ( HMENU )BUTTON_ID, 0, 0); break; //El penúltimo es el ID de la subventana del botón

case WM_PAINT: break;

case WM_COMMAND: //Botón mensaje WM_COMMAND para manejar

switch(LOWORD(wp)) //El byte bajo de wParam es el ID del botón en el que se hizo clic

{ //¡Escribe algo a continuación!

case BUTTON_ID:

//SetWindowText(btnWnd, "¿Hacer clic en mí otra vez?");

if(flag==true)

{

SendMessage(btnWnd, WM_SETTEXT, 0, LPARAM("¿Por qué hacer clic en mí?"));

}

else

{

SendMessage(btnWnd, WM_SETTEXT, 0, LPARAM("¿Hacer clic de nuevo?"));

//SetWindowText(btnWnd, (LPCSTR)" Hacer clic");

}

flag = !flag;

//MessageBox(hwnd, "¿Por qué haces clic en mí?", "¡Haz clic en mí!", MB_OK);

romper;

predeterminado: romper

}

caso WM_DESTROY; PostQuitMessage(0); devuelve 0;

predeterminado: descanso

}

devuelve DefWindowProc(hwnd, mensaje, wp, lp);

p>

}