通常,鼠标拖动对话框的区域是标题栏,本例中可以在对话框的任何区域进行拖动。
(1)新建一个基于对话框的MFC应用程序DragTest,删除对话框中原有控件。
(2)打开类CDragTestDlg的属性视图,切换到消息页,找到WM_NCHITTEST消息后添加消息函数OnNcHitTest,如图所示:
(3)在OnNcHitTest中,修改代码如下:
LRESULT CDragTestDlg::OnNcHitTest(CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
UINT nHitTest=CDialog::OnNcHitTest(point);
return (nHitTest==HTCLIENT)?HTCAPTION:nHitTest;
//return CDialogEx::OnNcHitTest(point);
}
(4)保存编译运行,运行结果如图:
在对话框非标题栏区域可以实现随意拖动的效果。