我试图在客户区使用鼠标创建一个没有标题栏的CMDIChildWnd
。
在消息地图中我添加了
ON_WM_LBUTTONDOWN()
和
void CChildFrame::OnLButtonDown(UINT nFlags, CPoint point)
{
SendMessage(WM_SYSCOMMAND, SC_MOVE | 0x0002);
}
结果是子窗口根据需要使用鼠标移动,但仅在其区域内移动。
关于如何进行的任何想法?
答案 0 :(得分:0)
我用一个小技巧做到了。实现行为的类是CFormView的派生类,我可以按预期将窗口移动到父窗口
void derived_CFormView::OnLButtonDown(UINT nFlags, CPoint point)
{
CFormView::OnLButtonDown(nFlags, point);
GetParentFrame()->PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y));
}
void derived_CFormView::OnLButtonUp(UINT nFlags, CPoint point)
{
CFormView::OnLButtonUp(nFlags, point);
GetParentFrame()->PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y));
}