MFC如何移动窗口

2025-06-28 03:19:57
推荐回答(2个)
回答1:

方法一:
重载WM_NCHITTEST,然后将OnNcHitTest里内容修改为:
UINT nHitTest = CDialog::OnNcHitTest(point);
if ((nHitTest == HTCLIENT) && (::GetAsyncKeyState (MK_LBUTTON) < 0))
nHitTest = HTCAPTION;
return nHitTest。

方法二:
重载WM_LBUTTONDOWN,在OnLButtonDown中添加:
PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x, point.y))。

回答2:

cDlg.SetWindowPos( NULL, x, y, 0, 0, SWP_NOSIZE|SWP_NOZORDER );
或者MoveWindow。