对应用程序主窗口标题栏的点击应是下面消息:
WM_NCLBUTTONDOWN 左键按下
WM_NCLBUTTONUP 左键释放
WM_NCLBUTTONDBLCLK 左键双击
WM_NCRBUTTONDOWN 右键按下
WM_NCRBUTTONUP 右键释放
WM_NCRBUTTONDBLCLK 右键双击
WM_NCMBUTTONDOWN 中键按下
WM_NCMBUTTONUP 中键释放
WM_NCMBUTTONDBLCLK 中键双击
WM_NCLBUTTONDOWN 左键按下
WM_NCLBUTTONUP 左键释放
WM_NCLBUTTONDBLCLK 左键双击
WM_NCRBUTTONDOWN 右键按下
WM_NCRBUTTONUP 右键释放
WM_NCRBUTTONDBLCLK 右键双击
WM_NCMBUTTONDOWN 中键按下
WM_NCMBUTTONUP 中键释放
WM_NCMBUTTONDBLCLK 中键双击
你好,我说的是用void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)来拦截鼠标双击主窗口标题栏,防止系统将我的主窗口由最大化改为其他大小,0XF122vc里的确没定义,
if(nID==SC_MINIMIZE)
return;
if(nID==SC_MOVE)
return;
if(nID==SC_RESTORE)
return;
if(nID==SC_SIZE)
return;
if(nID==0xF122)//双击标题栏
return;
我将我的主窗口最大化,并且提到Z轴的最前面,这样就霸占了整个屏幕,除了任务管理器能显示界面外,其他应用程序界面无法显示,也就无法操作,这在工控里很有用。
改用OnCommand(WPARAM wParam, LPARAM lParam) ;try!
{
CWnd* pWnd=AfxGetMainWnd();
pWnd->ShowWindow(SW_SHOWMAXIMIZED);//SW_SHOWMAXIMIZED
pWnd->SetWindowPos((pWnd-> GetStyle()&WS_EX_TOPMOST)?&wndNoTopMost:&wndTopMost,
0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);
}
就可以实现你的要求。
别忘了消息映射:ON_WM_NCLBUTTONDBLCLK()
{
CWnd* pWnd=AfxGetMainWnd();
pWnd->ShowWindow(SW_SHOWMAXIMIZED);
pWnd->SetWindowPos(wndTopMost,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);
}
就可以实现你的要求。
别忘了消息映射:ON_WM_NCLBUTTONDBLCLK()