Ésta es mi bucle principal:aplicación My Win32 no saldrá del bucle principal
while(TRUE)
{
PeekMessage(&msg,hWnd,0,0,PM_REMOVE);
if (msg.message==WM_QUIT)
break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
y este es mi procedimiento de devolución de llamada:
LRESULT CALLBACK WinProc(HWND hWnd,UINT msg1,WPARAM wParam,LPARAM lParam)
{
switch(msg1)
{
case WM_DESTROY :
{
PostQuitMessage(0);
return 0;
}
break;
}
return DefWindowProc(hWnd,msg1,wParam,lParam);
}
descubrí que cuando se presiona el botón Cerrar WM_NCLBUTTONDOWN será devuelto por la función PeekMessage en el siguiente ciclo, y no WM_QUIT!
Había otra pregunta sobre este mismo problema hace un par de semanas: [ventanas infinito bucle de mensajes] (http://stackoverflow.com/questions/10658813/infinite -windows-message-loop) – jamesdlin