MFC拖动无标题窗体
2015-02-12 10:04
225 查看
第一种方法:
1.在.h文件添加
afx_msg LRESULT OnNcHitTest(CPoint point);
2.在.cpp文件添加
BEGIN_MESSAGE_MAP(CDlgPresetCruise, CDialog)
ON_WM_NCHITTEST()
END_MESSAGE_MAP()
LRESULT CDlgPresetCruise::OnNcHitTest(CPoint pt)
{
CRect rc;
GetClientRect(&rc);
ClientToScreen(&rc);
return rc.PtInRect(pt) ? HTCAPTION : CDialog::OnNcHitTest(pt);
}
第二种方法:
首先添加鼠标左键单击消息,用自动添加便可。
void CDlgPresetCruise::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
//使窗口可以拖动
PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM (point.x, point.y));
CDialog::OnLButtonDown(nFlags, point);
}
在OnLButtonDown的鼠标响应消息添加红色部分代码!
该函数将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回,是异步消息模式。消息队列里的消息通过调用GetMessage和PeekMessage取得。
函数原型:B00L PostMessage(UINT Msg,WPARAM wParam,LPARAM lParam);
参数说明:
Msg:指定被寄送的消息。
wParam:指定附加的消息特定的信息。
IParam:指定附加的消息特定的信息。
返回值:如果函数调用成功,返回非零值:如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。
1.在.h文件添加
afx_msg LRESULT OnNcHitTest(CPoint point);
2.在.cpp文件添加
BEGIN_MESSAGE_MAP(CDlgPresetCruise, CDialog)
ON_WM_NCHITTEST()
END_MESSAGE_MAP()
LRESULT CDlgPresetCruise::OnNcHitTest(CPoint pt)
{
CRect rc;
GetClientRect(&rc);
ClientToScreen(&rc);
return rc.PtInRect(pt) ? HTCAPTION : CDialog::OnNcHitTest(pt);
}
第二种方法:
首先添加鼠标左键单击消息,用自动添加便可。
void CDlgPresetCruise::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
//使窗口可以拖动
PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM (point.x, point.y));
CDialog::OnLButtonDown(nFlags, point);
}
在OnLButtonDown的鼠标响应消息添加红色部分代码!
函数功能
该函数将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回,是异步消息模式。消息队列里的消息通过调用GetMessage和PeekMessage取得。
原型与参数
函数原型:B00L PostMessage(UINT Msg,WPARAM wParam,LPARAM lParam);参数说明:
Msg:指定被寄送的消息。
wParam:指定附加的消息特定的信息。
IParam:指定附加的消息特定的信息。
返回值:如果函数调用成功,返回非零值:如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。
相关文章推荐
- 如何拖动无标题栏窗体
- 简洁的 c# 拖动无标题栏窗体
- MFC拖动窗体时使窗体半透明
- java中 实现无标题无边框的窗体能够用鼠标拖动改变窗口大小
- VC++无标题窗口以及控件拖动的方法,MFC中的对话框怎么拖动不了
- MFC无标题栏自绘对话框可拖动按钮三态仿QQ弹窗样式
- 无标题栏窗体拖动
- MFC 无边框窗体实现用鼠标拖动窗体边缘实现窗体大小变化
- 拖动无标题栏的对话框(MFC)
- QWidget无边框无标题栏窗体 可拖动可拉伸
- c# 实现用鼠标拖动没有标题栏的窗口(窗体的任何部分都可实现拖动效果)
- C#无标题栏窗体鼠标拖动
- C#无标题栏也要实现窗体拖动
- vb.net实现无标题栏窗体可拖动
- C#无标题栏窗体鼠标拖动
- 拖动无标题的窗体(vb.net & c#)
- 快速设置无标题栏进行拖动窗体
- 实现用鼠标拖动没有标题栏的窗口(窗体的任何部分都可实现拖动效果)
- WPF:实现无标题栏窗体的拖动
- 一个拖动无标题栏窗体的方法 修正