CWnd::SetCapture, ReleaseCapture, GetCapture
一般,只有鼠标在CWnd的客户区内,你才能接受到鼠标消息。调用SetCapture后,即使鼠标移动出客户区,你也可以接受到鼠标消息。不过系统中只能有一个程序调用SetCapture,所以你需要在不使用时调用ReleaseCapture释放。而GetCapture可以知道当前哪个窗口调用了SetCapture。由于只能有一个程序调用SetCapture,所以这个函数不如SetWindowsHookEx好用。
常用的是在OnLButtonDown中SetCapture,在OnLButtonUp中ReleaseCapture,这样就可以捕获所有两个消息之间的鼠标移动消息(OnMouseMove),即使鼠标移动到窗口外面。当鼠标在窗口外面点击的时候,被点击的窗口获得焦点,原来的SetCapture也就失效了。
SetCapture和ReleaseCapture必须成对使用。
函数功能:该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向指定的窗口。
函数原型:HWND SetCapture(HWND hwnd); 参数: hWnd:当前线程里要捕获鼠标的窗口句柄。 返回值:返回值是上次捕获鼠标的窗口句柄。如果不存在那样的句柄,返回值是NULL。 备注:只有前台窗口才能捕获鼠标。如果一个后台窗口想捕获鼠标,则该窗口仅为其光标热点在该窗口可见部份的鼠标事件接收消息。另外,即使前台窗口已捕获了鼠标,用户也可点击该窗口,将其调入前台。当一个窗日不再需要所有的鼠标输入时,创建该窗口的线程应当调用函数ReleaseCapture来释放鼠标。此函数不能被用来捕获另一进程的鼠标输入。
ReleaseCapture
|
CWnd::SetCapture, ReleaseCapture, GetCapture相关推荐
- CWnd SetCapture ReleaseCapture GetCapture
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 一般,只 ...
- SetCapture, ReleaseCapture, GetCapture
来自:http://blog.csdn.net/weiwangchao_/article/details/6955970 一般,只有鼠标在CWnd的客户区内,你才能接受到鼠标消息.调用SetCaptu ...
- SetCapture/ReleaseCapture 使用场景
说明1 ::SetCapture(GetDlgItem(IDC_XX)->m_hWnd); or GetDlgItem(IDC_XX)->SetCapture(); 要与ReleaseC ...
- API - SetCapture(),ReleaseCapture与GetCapture - 鼠标移动的捕获与释放
演示效果: 添加控件:Form1,Button1,Label1,Label2,Timer1 GetCapture:返回当前捕获鼠标输入的窗口的句柄 SetCapture():通过句柄设置指定窗口来捕获 ...
- 关于SetCapture和GetCapture
转载地址:http://blog.csdn.net/laowu_/article/details/6839345 正常情况下,鼠标指针位于哪个窗口区域内,鼠标消息就自动发给哪个窗口.如果调用了SetC ...
- 正確使用 SetCapture ReleaseCapture [譯]
本文描述瞭如何正確處理自定義窗口和控件中的鼠標捕獲操作. 原文鏈接: http://www.codeproject.com/Tips/127813/Using-SetCapture-correctly ...
- SetCapture ReleaseCapture
函数功能:该函数在属于当前线程的指定窗体里设置鼠标捕获.一旦窗体捕获了鼠标,全部鼠标输入都针对该窗体,不管光标是否在窗体的边界内.同一时刻仅仅能有一个窗体捕获鼠标.假设鼠标光标在还有一个线程创建的窗体 ...
- js setCapture() releaseCapture() 获取页面上发生的所有的事件
setCapture() IE独有 div.setCapture() 这个div会获取页面上发生的所有的事件 捕获到自己身上来 div.releaseCapture() ;//清除 setCaptur ...
- 理解SetCapture、ReleaseCapture、GetCapture(控制了消息发往哪个窗口,是理解消息的关键)
理解SetCapture.ReleaseCapture.GetCapture 正常情况下,鼠标指针位于哪个窗口区域内,鼠标消息就自动发给哪个窗口.如果调用了SetCapture,之后无论鼠标的位置在哪 ...
最新文章
- HDU 6208 The Dominator of Strings ——(青岛网络赛,AC自动机)
- Hibernate调用存储过程
- 数据结构-王道-绪论
- html中给文章怎么设置行高,css如何设置行距?
- sql出现无法启动(model数据库)
- Openpyxl:读取/写入Excel文件的Python模块
- 数据库在什么情况下适合添加索引
- 【信号与系统实验】实验五 信号抽样与恢复
- 【人工智能】一文读懂人脸识别技术
- 微服务调用链追踪中心搭建
- ftp客户端安装,六款可以安装的ftp客户端
- SIP12 脚 电磁隔离放大器IC 模拟信号隔离放大器 电磁耦合隔离放大器
- 【java毕业设计】基于javaEE+SSM+MySql的个人博客系统设计与实现(毕业论文+程序源码)——个人博客系统
- Type-infity Wasserstein Ball
- http 304响应的理解
- ATSHA204A加密芯片攻略——使用篇
- Android——下载apk文件,并在通知栏显示下载进度
- vsftpd lftp
- Task3 矩阵分解
- 超赞干货!2016年新鲜出炉的20款网页开发工具推荐