求助: 把标题栏去除,用鼠标单击客户区拖动窗体是如何实现的? 把标题栏去除,用鼠标单击客户区拖动窗体是如何实现的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 响应鼠标操作,在MOUSEMOVE时用MOVEWINDOW实现窗体移动 //去除标题栏ModifyStyle( WS_CAPTION, 0 );//用鼠标单击客户区拖动窗体::OnLButtonDown(UINT nFlags, CPoint point) {// TODO: Add your message handler code here and/or call defaultPostMessage( WM_NCLBUTTONDOWN, HTCAPTION, 0 ); //发送点中标题区消息CDialog::OnLButtonDown(nFlags, point);} UINT C~dWnd::OnNcHitTest(CPoint point) { return HTCAPTION ;} 除去标题栏,该属性就可以。移动窗体要改改消息OnNcHitTestUINT CAboutDlg::OnNcHitTest(CPoint point) { // TODO: Add your message handler code here and/or call default UINT nHitTest = CDialog::OnNcHitTest(point); return (nHitTest == HTCLIENT)? HTCAPTION:nHitTest;// return CDialog::OnNcHitTest(point);} 这里有篇文章手工增加该消息映射,用classwizard是无法增加该消息的,在BEGIN_MESSAGE_MAP中加入消息ON_WM_NCHITTEST(),然后在头文件中加入: afx_msg UINT OnNcHitTest(CPoint point); 在实现文件中,加入LBUTTONDOWN消息函数 void CClyzDlg::OnLButtonDown(UINT nFlags, CPoint point) { CTranDialog::OnLButtonDown(nFlags, point);//把CTranDialog改成你的基类 PostMessage( WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM( point.x, point.y)); } 加入NCHITTEST消息函数 UINT CClyzDlg::OnNcHitTest(CPoint point) { UINT nHitTest = CTranDialog::OnNcHitTest( point );//把CTranDialog改成你的基类 return (nHitTest == HTCLIENT) ? HTCAPTION : nHitTest; }给分点上方的管理即可 重载WM_NCHITTESTUINT CAboutDlg::OnNcHitTest(CPoint point) { UINT nHitTest = CDialog::OnNcHitTest(point); if(nHitTest==HTCLIENT) return HTCAPTION; return nHitTest;} wince6下读写XML文件太慢,有没有更快速的方法? 请教一个关于define宏的问题 VC++6.0多国语言--俄语,怎么编译 有没有好点的办法去掉菜单栏的? 新人 求问 想做工作流或数据流程定制方面的工作,请给提意见,Up有分! ADO:怎样获得系统日期并存入Access数据库 一个苦恼的女孩 异想天开的问题???,进来就给分!!!! 求字符串去重复分组 大家好,在注册表里,我想用VC新建一个字符串值,名为fastreboot怎么 作呀,高分,急,手里没有MSDN 初学者
ModifyStyle( WS_CAPTION, 0 );//用鼠标单击客户区拖动窗体
::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
PostMessage( WM_NCLBUTTONDOWN, HTCAPTION, 0 ); //发送点中标题区消息
CDialog::OnLButtonDown(nFlags, point);
}
{
return HTCAPTION ;}
UINT CAboutDlg::OnNcHitTest(CPoint point)
{
// TODO: Add your message handler code here and/or call default
UINT nHitTest = CDialog::OnNcHitTest(point);
return (nHitTest == HTCLIENT)? HTCAPTION:nHitTest;
// return CDialog::OnNcHitTest(point);
}
手工增加该消息映射,用classwizard是无法增加该消息的,在BEGIN_MESSAGE_MAP中加入消息ON_WM_NCHITTEST(),然后在头文件中加入: afx_msg UINT OnNcHitTest(CPoint point); 在实现文件中,加入LBUTTONDOWN消息函数 void CClyzDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
CTranDialog::OnLButtonDown(nFlags, point);//把CTranDialog改成你的基类
PostMessage( WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM( point.x, point.y));
} 加入NCHITTEST消息函数 UINT CClyzDlg::OnNcHitTest(CPoint point)
{
UINT nHitTest = CTranDialog::OnNcHitTest( point );//把CTranDialog改成你的基类
return (nHitTest == HTCLIENT) ? HTCAPTION : nHitTest;
}
给分点上方的管理即可
UINT CAboutDlg::OnNcHitTest(CPoint point)
{
UINT nHitTest = CDialog::OnNcHitTest(point);
if(nHitTest==HTCLIENT)
return HTCAPTION;
return nHitTest;
}