限制鼠标活动区域

 

一、ClipCursor()函数

该函数把鼠标限制在屏幕上的一个矩形区域内,如果调用SetCursor或用鼠标设置的一个随后的鼠标位置在该矩形区域的外面,则系统自动调整该位置以保持鼠标在矩形区域之内。
注:该方式点击键盘Win键自动失效

 二、具体方法

BOOL ClipCursor(CONST RECT * lpRect);

IpRect:指向RECT结构的指针,该结构包含限制矩形区域左上角和右下角的屏幕坐标,如果该指针为NULL(空),则鼠标可以在屏幕的任何区域移动。

例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//1、获取窗口矩形区
//2、根据需求计算限制区域
//3、调用ClipCursor(rect),设置限制区域
 
//创建矩形区用于接收变量
CRect rect;
//获取窗体矩形区(绝对坐标)
GetWindowRect(&rect);//获取客户区 矩形区域//GetClientRect(&rect);  //根据ID获取控件的矩形区//(this->GetDlgItem(IDC_STATIC))->GetWindowRect(&rect_ctr);
//根据需要,在rect基础上修改为想要的限制区域
rect.SetRect(rect.TopLeft().x+95, rect.TopLeft().y+5, rect.TopLeft().x+rectK.BottomRight().x, rect.TopLeft().y+rectK.BottomRight().y);
//设置限制区域
ClipCursor(rect);
 
//注:取消限制区域
ClipCursor(NULL);

  

 

posted @   燕钰达  阅读(721)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示