请教:如何实现鼠标在对话框的非标题栏范围内按下时可以拖动窗口 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你用csdn的全文搜索。保证正确答案多得你数不过来 响应鼠标单击事件,代码极其简单:SendMessage(WM_NCLBUTTONDOWN,(WPARAM)HTCAPTION,MAKELPARAM(5,5));就行了 我这是个笨方法,不知道你能不能用得上//{{AFX_MSG(..)afx_msg void OnLButtonDown(UINT nFlags, CPoint point);afx_msg void OnLButtonUp(UINT nFlags, CPoint point);afx_msg void OnMouseMove(UINT nFlags, CPoint point);//}}AFX_MSG...BEGIN_MESSAGE_MAP(...)ON_WM_LBUTTONDOWN()ON_WM_LBUTTONUP()ON_WM_MOUSEMOVE()END_MESSAGE_MAP()void CMyDlg::OnLButtonDown(UINT nFlags, CPoint point) { m_bMoving = TRUE; SetCapture(); m_pointOld = point; CDialog::OnLButtonDown(nFlags, point);}void CMyDlg::OnLButtonUp(UINT nFlags, CPoint point) { if( m_bMoving == TRUE ) { m_bMoving = FALSE; ::ReleaseCapture(); } CDialog::OnLButtonUp(nFlags, point);}void CMyDlg::OnMouseMove(UINT nFlags, CPoint point) { if( m_bMoving == TRUE ) { CRect rect; GetWindowRect(&rect); rect.left += (point.x - m_pointOld.x); rect.right += (point.x - m_pointOld.x); rect.top += (point.y - m_pointOld.y); rect.bottom += (point.y - m_pointOld.y); SetWindowPos(&wndTopMost, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, SWP_SHOWWINDOW); } CDialog::OnMouseMove(nFlags, point);} connect错误10049 晕, 怎么一直都是CString泄漏 VC环境设置问题,------急 如何关闭和开启一个外部程序 如何删除catch(...)捕获的异常? WH_KEYBOARD处理函数中如何得到指向输入焦点的窗口? 这个问题有点怪 问下QQ安装问题 上海的谁想学VC 如何动态改变本机ip地址(拨号上网时),用vc写 extern "C"问题 大家给我介绍一些用vc做snmp编程的经典书,不要提RFC了,这个我知道
//{{AFX_MSG(..)
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
//}}AFX_MSG
...
BEGIN_MESSAGE_MAP(...)
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
END_MESSAGE_MAP()void CMyDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
m_bMoving = TRUE;
SetCapture();
m_pointOld = point;
CDialog::OnLButtonDown(nFlags, point);
}void CMyDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
if( m_bMoving == TRUE )
{
m_bMoving = FALSE;
::ReleaseCapture();
}
CDialog::OnLButtonUp(nFlags, point);
}void CMyDlg::OnMouseMove(UINT nFlags, CPoint point)
{
if( m_bMoving == TRUE ) {
CRect rect;
GetWindowRect(&rect);
rect.left += (point.x - m_pointOld.x);
rect.right += (point.x - m_pointOld.x);
rect.top += (point.y - m_pointOld.y);
rect.bottom += (point.y - m_pointOld.y);
SetWindowPos(&wndTopMost, rect.left, rect.top,
rect.right - rect.left, rect.bottom - rect.top,
SWP_SHOWWINDOW);
} CDialog::OnMouseMove(nFlags, point);
}