不规则窗体移动
来源:互联网 发布:mysql数据库分页语句 编辑:程序博客网 时间:2024/05/20 20:18
方法1:
在ON_WM_NCHITTEST事件中直接伪造:点击在客户区域都伪造成点在标题栏处
LRESULT CxxxDlg::OnNcHitTest(CPoint point)
{
// TODO: Add your message handler code here and/or call default
UINT nHitTest =0;
nHitTest= CDialogEx::OnNcHitTest(point);
if (nHitTest == HTCLIENT)
{
nHitTest = HTCAPTION; // 关键是这一句
}
return nHitTest;
}
方法2:
使用ON_WM_LBUTTONDOWN和ON_WM_MOUSEMOVE事件
在左键按下,记住开始位置,在移动时设置窗体的位置
void CxxxDlg::OnNcLButtonDown(UINT nHitTest, CPoint point)
{
m_TempPoint=point;
CDialogEx::OnNcLButtonDown(nHitTest, point);
};
void CclockDlg::OnMouseMove(UINT nFlags, CPoint point)
{
if (nFlags&MK_LBUTTON) //如果鼠标移动时左键是按下的。
{
CPoint ipoint;
::GetCursorPos(&ipoint); //得到当前光标位置。
SetWindowPos(NULL, ipoint.x-m_TempPoint.x , ipoint.y-m_TempPoint.y, 0, 0, SWP_NOSIZE | SWP_NOACTIVATE);//设置窗口新位置。
}
}
方法3:
使用ON_WM_LBUTTONDOWN事件
void CxxxxDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
ClientToScreen(&point);
SendMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELONG(point.x,point.y));
CDialogEx::OnLButtonDown(nFlags, point);
}
- 不规则窗体移动
- c#不规则窗体移动
- C# 移动不规则窗体
- c#不规则窗体之移动窗体
- 不规则窗体
- 不规则窗体
- 不规则窗体?
- 不规则窗体
- 不规则窗体
- 不规则窗体
- 创建位图型不规则窗体(可透明,可移动)
- 【C#】[窗体]不规则窗体
- 形态各异的不规则窗体
- 不规则窗体的实现
- vc制作不规则窗体
- 自己制作不规则窗体
- C#创建不规则窗体
- WinForm不规则窗体
- 构造函数定义为private,protected
- 对Hadoop源代码中Child类的调试方法
- Ubuntu10.04配置VPN
- 存储过程再续
- (11)JDBC数据库的连接,对数据的增删改查
- 不规则窗体移动
- flexMarquee 组件flexMarquee.mxml的代码:
- Win32信号量实现生产者消费者模型
- mysql 存储过程详解
- 关于sizeof的一道面试题
- android 关于页面跳转
- 存储过程
- 解决 JavaMail Api 删除邮件时 诡异Exception
- 一道SCJP题目