通常情況下窗體可以被移動,但是特殊情況下要使窗體不能移動。
工具/原料
Visual Studio 2010或者Visual C++6.0
方法/步驟
新建一個單文檔的MFC應用,工程命名為NoMoveWin
在菜單欄的“查看”中選擇“建立類嚮導”,彈出MFC ClassWizard。在Message Maps選項卡的Class name下拉列表框中選擇CmainFrame選項。
在Class Info選項卡的Message filter下拉列表框中選擇Windows選項。
在Message Maps選項卡的Message列表框中選擇WM_NCHITTEST選項,單擊Add Function按鈕
在新添加的函數OnNcHitTest()中寫入一下代碼:
UINT CMainFrame::OnNcHitTest(CPoint point)
{
// TODO: Add your message handler code here and/or call default
// 截獲鼠標事件
UINT returnValue = CFrameWnd::OnNcHitTest(point);
// 判斷是否在拖動窗體的工具欄
if(returnValue == HTCAPTION)
{
// 如果是拖動工具欄則截獲後不傳遞消息
return FALSE;
}
else
{
// 否則直接傳遞消息
return returnValue;
}
}
注意事項
多查看MSDN文檔,查看函數的用法