在网上找的方法是增加如下代码:
afx_msg UINT OnNcHitTest(CPoint point);
ON_WM_NCHITTEST()
UINT CMySkinAdDlg::OnNcHitTest(CPoint pt)
{
CRect rc;
GetClientRect(&rc);
ClientToScreen(&rc);
return rc.PtInRect(pt)? HTCAPTION:CDialog::OnNcHitTest(pt);
}
使用可行,但当加入SkinH.dll的皮肤效果后,移动失败,这个原因暂时还不知道,于是增加解决方案如下
UINT CMySkinAdDlg::OnNcHitTest(CPoint pt)
{//将函数修改为此
UINT nHitTest = CDialog::OnNcHitTest(pt);
return (nHitTest == HTCLIENT) ? HTCAPTION : nHitTest;
}
然后增加左击函数如下
void CMySkinAdDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CDialog::OnLButtonDown(nFlags, point);
PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y));
}
运行后就可以了。。。。