vc響應最大化最小化按鈕的事件或訊息 .
方法一。在OnSize訊息事件中處理
最小化 SIZE_MINIMIZED,
最大化 SIZE_MAXIMIZED,
還原 SIZE_RESTORED,
例如:
void CMainDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
//::SendMessage(g_hMain,WM_FORM_RESIZE,0,0);
if (nType== SIZE_MAXIMIZED)
{
//在這裡新增最小化需要處理的事件
// ::SendMessage(g_hMain,WM_FORM_RESIZE,0,0);
}
if (nType==SIZE_RESTORED)
{
//在這裡新增還原時需要處理的事件
// ::SendMessage(g_hMain,WM_FORM_RESIZE,0,0);
}
}
方法二
在OnSysCommand中處理
nID = SC_MAXIMIZE 是最大化
nID = SC_MINIMIZE 是最小化
方法三:
一般情況下是在訊息處理過程中進行判斷,如:
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_DESTROY:
// 響應程式碼
break;
case WM_GETMINMAXINFO: // lParam返回一個指向MINMAXINFO結構的指標
// 響應程式碼
break;
default:
return DefWindowProc(hWnd, msg, wParam, lParam);
}
return 0;
}