MFC无标题栏窗口移动问题。
我在做一个小系统,为了美化界面,我把标题栏去掉了。
1.还剩下菜单栏和工具栏。我把菜单栏高度设置为70,请问能通过菜单栏和工具栏移动窗口吗?(客户区内移动我会),怎么做?
2.360安全管家那种软件C#做的吧,我想知道它那非客户区是怎样做的的(类似去放大版的工具栏,且能移动),MFC能做到相同的效果么?不懂的可不答,主要是解决第一问。
谢谢大家!
MFC 无标题栏 窗口移动 界面美化
[解决办法]
360安全管家是c++做的。
它没有非客户区。
一般拖动是在OnNcHitTest中处理,由于没有非客户区,所以可以根据鼠标点的位置来判断,如果拖动,返回HTCAPTION,如果不拖动,返回HTCLIENT
[解决办法]
WM_NCHITTEST消息判断拖曳的位置
[解决办法]
UINT CMainWindow::OnNcHitTest (CPoint point)
{
UINT nHitTest = CFrameWnd::OnNcHitTest (point);
if (nHitTest == HTCLIENT) //如果是客户区
{
nHitTest = HTCAPTION; //则把它当成标题栏
}
return nHitTest;
}
[解决办法]
PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y));
}