最近一个项目里需要限定鼠标移动范围。
要就如下:
Word:
clip [klip]
- vt. 修剪;夹牢;痛打
- vi. 修剪
- n. 修剪;夹子;回形针
-
短语
Hose clip 软管卡子 ; 软管夹 ; 软管夹子 ; 软管卡
paper clip 回形针 ; 曲别针 ; 纸夹 ; 回纹针
cursor ['kə:sə]
- n. 光标;(计算尺的)[计] 游标,指针
-
wait cursor 等待光标 ; 沙漏光标 ; 需要使用等待指针
-
API:
ClipCursor
函数功能:该函数把鼠标限制在屏幕上的一个矩形区域内,如果调用SetCursor或用鼠标设置的一个随后的鼠标位置在该矩形区域的外面,则系统自动调整该位置以保持鼠标在矩形区域之内。
函数原型:BOOL ClipCursor(CONST RECT * lpRect);
参数:
IpRect:指向RECT结构的指针,该结构包含限制矩形区域左上角和右下角的屏幕坐标,如果该指针为NULL(空),则鼠标可以在屏幕的任何区域移动。
返回值:如果成功,返回值非零;如果失败,返回值为零。若想获得更多错误信息,请调用GetLastError。
备注:
1.光标是一个共享资源,如果一个应用控制了鼠标,在将控制转向另一个应用之前,
必须要使用ClipCursor来释放鼠标,该调用过程必须具有对窗口的WINSTA_WRITEATTRIBUTES访问权。
2.此函数为api函数,调用时要函数声明:Private Declare Function ClipCursor Lib "user32" (lpRect As Any) As Long
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件;user32.lib。
#include <stdio.h>
#include <windows.h>
int main(int argc, char* argv[])
{
printf("\n别害怕15妙后你的鼠标就可以使用了^_^\n");
RECT rect;
rect.bottom=1;
rect.right=1;
//-----------add------
rect.left=0;
rect.top=0;
//-----------end-----
ClipCursor(&rect);
::Sleep(15000);
ClipCursor(NULL);//释放
return 0;
}