MFC单文档如何实现客户区拖动窗口

2024-11-16 17:49:36
推荐回答(2个)
回答1:

单文档程序,和对话框程序有所不同,你在客户区的点击,不是被框架窗口接收,而是被View类接收了,因此才会出现你现在的效果。
OnNcHitTest函数,是巧用,不需要自己做处理,只是模拟了标题栏的响应,但窗口不同就不能这样做了。我觉得,只能是自己在View类的OnMouseMove里面通过AfxGetMainWnd()->MoveWindow这样的方式来实现吧。

回答2:

这是对话框的代码

UINT CTestMusicDlg::OnNcHitTest(CPoint point)
{
// TODO: Add your message handler code here and/or call default
CRect rc;

GetClientRect(&rc);

rc.bottom=50;

ClientToScreen(&rc);

return rc.PtInRect(point) ? HTCAPTION : CDialog::OnNcHitTest(point);

}