背景:原有代码里,点击按钮,弹出一个浮动的对话框,连续多次快速点击标题栏,同时拉动标题栏,此对话框会被拖动,并被改变大小。没做过MFC,于是找度娘求了一上午奶,味道不怎么好,但好歹解决了。。。
.h文件
afx_msg void OnNcLButtonDown(UINT nHitTest, CPoint point);
LRESULT OnNcHitTest(CPoint point);
.cpp文件
BEGIN_MESSAGE_MAP(MyDialog, CDialogEx)
ON_WM_NCLBUTTONDOWN()
ON_WM_NCHITTEST()
END_MESSAGE_MAP()
void MyDialog::OnNcLButtonDown(UINT nHitTest, CPoint point)
{
if (HTCAPTION == nHitTest)
{
return;
}
CDialog::OnNcLButtonDown(nHitTest, point);
}
LRESULT MyDialog::OnNcHitTest(CPoint point)
{
UINT Flag = CDialog::OnNcHitTest(point);
if (Flag == HTCAPTION)
{
return HTCLIENT;
}
else if (Flag == HTCLIENT)
{
return HTCAPTION;
}
else
{
return Flag;
}
}
原理我也不懂,也没心思搞前端,就是一头莽。问题反正解决了,留个记录,以做参考。