限制鼠标活动区域

 

一、ClipCursor()函数

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

 二、具体方法

BOOL ClipCursor(CONST RECT * lpRect);

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

例:

//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 @ 2020-11-15 15:58  燕钰达  阅读(667)  评论(0编辑  收藏  举报