VC实现无标题栏对话框的拖动
2010-10-20 23:02
246 查看
1.在消息映射中手动添加:
afx_msg UINT OnNcHitTest(CPoint pt);
2.在.cpp文件中添加:
BEGIN_MESSAGE_MAP(CMyDialog, CDialog)
//{{AFX_MSG_MAP(CMyDialog)
ON_WM_SYSCOMMAND()
ON_BN_CLICKED(ID_APP_ABOUT,OnAbout)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_WM_NCHITTEST()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
3.实现该函数:
UINT CMyDialog::OnNcHitTest(CPoint pt)
{
CRect rc;
GetClientRect(&rc);
ClientToScreen(&rc);
return rc.PtInRect(pt) ? HTCAPTION : CDialog::OnNcHitTest(pt);
}
PS: 在VS2005中,微软将OnNcHitTest的返回类型设为LRESULT,之前的返回类型为UINT
可通过如下方法解决在VS2005中的问题
#if _MSC_VER >= 1400
afx_msg LRESULT OnNcHitTest(CPoint point);
#else
afx_msg UINT OnNcHitTest(CPoint point);
#endif
afx_msg UINT OnNcHitTest(CPoint pt);
2.在.cpp文件中添加:
BEGIN_MESSAGE_MAP(CMyDialog, CDialog)
//{{AFX_MSG_MAP(CMyDialog)
ON_WM_SYSCOMMAND()
ON_BN_CLICKED(ID_APP_ABOUT,OnAbout)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_WM_NCHITTEST()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
3.实现该函数:
UINT CMyDialog::OnNcHitTest(CPoint pt)
{
CRect rc;
GetClientRect(&rc);
ClientToScreen(&rc);
return rc.PtInRect(pt) ? HTCAPTION : CDialog::OnNcHitTest(pt);
}
PS: 在VS2005中,微软将OnNcHitTest的返回类型设为LRESULT,之前的返回类型为UINT
可通过如下方法解决在VS2005中的问题
#if _MSC_VER >= 1400
afx_msg LRESULT OnNcHitTest(CPoint point);
#else
afx_msg UINT OnNcHitTest(CPoint point);
#endif
相关文章推荐
- 在VC++中实现无标题栏对话框的拖动
- 在VC++中实现无标题栏对话框的拖动
- 在VC++中实现无标题栏对话框的拖动
- 在VC++中实现无标题栏对话框的拖动
- 在VC++中实现无标题栏对话框的拖动(转帖)
- vc中实现无标题栏对话框的拖动
- 在VC++中实现无标题栏对话框的拖动
- 在VC++中实现无标题栏对话框的拖动
- 在VC++中实现无标题栏对话框的拖动
- 在VC++中实现无标题栏对话框的拖动
- 在VC++中实现无标题栏对话框的拖动
- 【原】一句话实现无标题栏对话框的拖动
- vc ++ 实现无标题拖动
- VC++中鼠标拖动实现两对话框之间信息的转移(优化篇)
- 实现无标题栏对话框的拖动
- VC MFC 对话框,如何实现鼠标拖动显示一个框,松开鼠标框就消失
- VC++无标题窗口以及控件拖动的方法,MFC中的对话框怎么拖动不了
- VC 对话框 怎么实现 鼠标拖动 变大 变小
- 实现无标题栏对话框的拖动
- VC中无标题栏的对话框界面 ,如何来拖动程序的解决方法