您的位置:首页 > 其它

MFC 移动无标题对话框

2012-06-04 13:23 323 查看
在网上找的方法是增加如下代码:

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));

}

运行后就可以了。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: