1.鼠标输入
1.用户移动鼠标时,系统在屏幕上移动一个称为鼠标光标的小位图
2.鼠标光标含有一个叫做热点的像素点,系统用它来跟踪和识别光标的位置
3.如果发生了鼠标事件,热点所在位置下的窗口通常会接收到相关的鼠标消息
4.能够接收鼠标消息的窗口并不一定是活动窗口或具有键盘输入焦点
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l62pCBub-1665111610205)(C:\Users\cjy\AppData\Roaming\Typora\typora-user-images\image-20221007095732208.png)]](https://i-blog.csdnimg.cn/blog_migrate/64fc9a0aeb612fe3c622d7304575c56e.png)
2.鼠标消息
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LwYBH834-1665111610207)(C:\Users\cjy\AppData\Roaming\Typora\typora-user-images\image-20221007100739052.png)]](https://i-blog.csdnimg.cn/blog_migrate/d8dc1fa427c1a8e2c7926f168d61a548.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M5oPCzJA-1665111610208)(C:\Users\cjy\AppData\Roaming\Typora\typora-user-images\image-20221007104129486.png)]](https://i-blog.csdnimg.cn/blog_migrate/c220c8abeeea31b837f165c9470c3c28.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CBut02r9-1665111610210)(C:\Users\cjy\AppData\Roaming\Typora\typora-user-images\image-20221007104239152.png)]](https://i-blog.csdnimg.cn/blog_migrate/902fed4a3ed751de43513dd5da5cec36.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XbHquMid-1665111610212)(C:\Users\cjy\AppData\Roaming\Typora\typora-user-images\image-20221007104446339.png)]](https://i-blog.csdnimg.cn/blog_migrate/00e64cfa1423150c12f949736823de20.png)
3.鼠标捕获
接收鼠标消息的窗口
1.窗口过程通常只在鼠标光标位于窗口的客户区或非客户区上时才接收鼠标消息,也就是说,系统只向光标热点之下的窗口发
送鼠标消息 ------ 这种是客户区坐标
2.但是某些时候应用程序可能需要接收鼠标消息,即使光标热点在它的窗口范围之外,这种情况下,我们可以使用 SetCapture函数来使某个窗口捕获鼠标,在应用程序调用 ReleaseCapture 恢复正常的鼠标处理方式之前,这个窗口将接收所有的鼠标消息 ----- 这种是屏幕坐标
HWND GUIAPI SetCapture(HWND hWnd);
void GUIAPI ReleaseCapture(void);
HWND GUIAPI GetCapture(void);
例程
#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/control.h>
#define IDC_MYBUTTON 100
/* 简单按钮控件类的回调函数 */
static int MybuttonWindowProc (HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
HDC hdc

本文介绍了鼠标输入的基本原理,包括鼠标光标的显示与位置跟踪,以及如何通过SetCapture函数实现鼠标消息的捕获,允许应用程序接收特定窗口外的鼠标事件。
最低0.47元/天 解锁文章
558

被折叠的 条评论
为什么被折叠?



