MFC单文档如何实现客户区拖动窗口
就是单击点着客户区能像点着标题栏一样拖动窗口。别人告诉我用OnNcHitTest函数。。但是这个函数是非客户区点击测试。只响应标题栏和菜单栏。不会响应客户区。求教。...
就是单击点着客户区能像点着标题栏一样拖动窗口。别人告诉我用OnNcHitTest函数。。但是这个函数是非客户区点击测试。只响应标题栏和菜单栏。不会响应客户区。求教。
展开
2个回答
展开全部
单文档程序,和对话框程序有所不同,你在客户区的点击,不是被框架窗口接收,而是被View类接收了,因此才会出现你现在的效果。
OnNcHitTest函数,是巧用,不需要自己做处理,只是模拟了标题栏的响应,但窗口不同就不能这样做了。我觉得,只能是自己在View类的OnMouseMove里面通过AfxGetMainWnd()->MoveWindow这样的方式来实现吧。
OnNcHitTest函数,是巧用,不需要自己做处理,只是模拟了标题栏的响应,但窗口不同就不能这样做了。我觉得,只能是自己在View类的OnMouseMove里面通过AfxGetMainWnd()->MoveWindow这样的方式来实现吧。
更多追问追答
追问
有代码吗?谢谢
追答
没人这么做过,呵呵
没现成代码,我估计网上也没有,你自己试试吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是对话框的代码
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);
}
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);
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询