移动窗体
来源:互联网 发布:内网外网一键切换软件 编辑:程序博客网 时间:2024/05/17 20:30
当窗口需要确定鼠标位置时Windows向窗口发送WM_NCHITTEST信息,可以处理该信息使Windows认为鼠标在窗口标题上。对于对话框和基于对话的应用程序,可以使用ClassWizard处理该信息并调用基类函数, 如果函数返回HTCLIENT 则表明鼠标在客房区域,返回HTCAPTION表明鼠标在Windows的标题栏中。
UINT CSampleDialog : : OnNcHitTest (Cpoint point )
{
UINT nHitTest =Cdialog: : OnNcHitTest (point )
return (nHitTest = =HTCLIENT)? HTCAPTION : nHitTest
}
上述技术有两点不利之处,
其一是在窗口的客户区域双击时,窗口将极大;
其二, 它不适合包含几个视窗的主框窗口。
还有一种方法,当用户按下鼠标左键使主框窗口认为鼠标在其窗口标题上,使用ClassWizard在视窗中处理WM_LBUTTODOWN信息并向主框窗口发送一个WM_NCLBUTTONDOWN信息和一个单击测试HTCAPTION。
void CSampleView : : OnLButtonDown (UINT nFlags , Cpoint point)
{
CView : : OnLButtonDow (nFlags , pont )
//Fool frame window into thinking somene clicked on its caption bar .
GetParentFrame()->PostMessage( WM_NCLBUTTONDOWN ,HTCAPTION , MAKELPARAM (point.x , point.y))
}
该技术也适用于对话框和基于对的应用程序,只是不必调用CWnd: :GetParentFrame 。
void CSampleDialog : : OnLbuttonDown (UINT nFlags, Cpoint point )
{
Cdialog : : OnLButtonDow (nFlags, goint )
//Fool dialog into thinking simeone clicked on itscaption bar .
PostMessage(WM_NCLBUTTONDOWN , HTCAPTION , MAKELPARM (point.x, point. y));
}
- 窗体移动
- 移动窗体
- 窗体移动
- 窗体移动
- 移动窗体
- BCB窗体移动
- 移动无title窗体
- 移动无框架窗体
- C#实现窗体移动
- Delphi中的窗体移动
- 通过控件移动窗体
- C#,代码,移动窗体
- 无标题栏窗体移动
- 移动Web窗体设计
- 移动Web窗体基础
- 无标题移动窗体 C#
- 窗体内控件拖拽移动
- WinForms窗体移动
- Java读取文件内容到byte[]数组中
- 字符流与字节流的区别
- xen的系列命令
- “Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.EnterpriseLibraryFactory”的类型初始值设定项引发异常
- C++中调用指定程序打开相应的文件
- 移动窗体
- 了解真实的我请随我来!
- 版本管理--居然忘了上传
- [c#]CacheHelper缓存类
- 64位Ubuntu9.04中带kdb的Xen的安装
- linux下通过dup2标准输出重定向查看系统进程方法(也是popen函数实现的方法)
- JS作用域--掌控上下文
- 通过构造器注入IOC的依赖关系
- Asp.Net 上传大文件专题(4)--利用ajax技术显示上传进度