switch(uMsg)
{
case WM_SYSCOMMAND:
switch(wParam)
{
case SC_MINIMIZE:
MessageBox(hWnd, "Hello", "", MB_OK);
break;
case SC_CLOSE:
SendMessage(hWnd, WM_DESTROY, 0, 0);
break;
}
break;
case WM_CLOSE:
userReply = MessageBox(hWnd, "Вы действительно хотите выйти?", "", MB_YESNO | MB_ICONQUESTION);
if(IDYES == userReply)
DestroyWindow(hWnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
Обработка события MINIMAZE
У меня такая проблема(тока начал прогить на WIN API), делаю обработку события по нажатию в системном меню на кнопку минимизации. Попытался сделать с помощью WM_SYSCOMMAND, но тогда приходится для всех кнопок делать обработку, может кто подскажет как сделать проще. При попытке написать обработку для кнопки максимизации, столкнулся с проблемой: как максимизировать окно?
Вот мой код:
Код:
если в сискоманде не сообщение минимайз то пиши
default:
return DefWindowProc(hWnd,uMsg,wParam,lParam);
Код:
case WM_SYSCOMMAND:
switch(wParam)
{
case SC_MINIMIZE:
MessageBox(hWnd, "Hello", "", MB_OK);
return 0;
default:
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
switch(wParam)
{
case SC_MINIMIZE:
MessageBox(hWnd, "Hello", "", MB_OK);
return 0;
default:
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
Спасибо, все заработало!:)