vc响应最大化最小化按钮的事件或消息
最小化 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 是最小化
void CMainDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if (nID== SIZE_MAXIMIZED)
{
//在这里添加最小化需要处理的事件
// ::SendMessage(g_hMain,WM_FORM_RESIZE,0,0);
}
if (nID==SIZE_RESTORED)
{
//在这里添加还原时需要处理的事件
// ::SendMessage(g_hMain,WM_FORM_RESIZE,0,0);
}
}
方法三:
一般情况下是在消息处理过程中进行判断,如:
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;
}
WM_GETMINMAXINFO WPARAM wParam LPARAM lParam;
Parameters
wParam
- This parameter is not used.
lParam- Pointer to a MINMAXINFO structure that contains the default maximized position and dimensions, and the default minimum and maximum tracking sizes. An application can override the defaults by setting the members of this structure.