如何将鼠标的移动,限制在一定的范围内??

mikko11 2003-03-14 09:20:33
如题
...全文
457 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
nuaawenlin 2003-03-14
  • 打赏
  • 举报
回复
我觉得你应该在最后释放!
sysu 2003-03-14
  • 打赏
  • 举报
回复
可能用鼠标Hook可以做到吧,不过我也没试过。
mikko11 2003-03-14
  • 打赏
  • 举报
回复
非常感谢各位的答案。

to sysu(死树)
如果出现你所说的情况,那怎么处理呢?
sysu 2003-03-14
  • 打赏
  • 举报
回复
用ClipCursor有时会失效的,如果指定的rect有一部分在Form的外面,只要把鼠标在Form外点一下,就能随便移动了。还有就算整个rect在Form内,只要按一下Ctrl+Alt+Del,也能随便移动了。
307 2003-03-14
  • 打赏
  • 举报
回复
: l0f(凌风)的方法不错!应该可以实现!
OO_is_just_P 2003-03-14
  • 打赏
  • 举报
回复
呵呵,HubDog葵花宝典
智商无下限 2003-03-14
  • 打赏
  • 举报
回复
简单一点的:
procedure TForm1.Button2Click(Sender: TObject);
var rect:Trect;
begin
rect.Left:=100;
rect.Top:=0;
rect.Right:=500;
clipcursor(@rect);
end;
OO_is_just_P 2003-03-14
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
rtButton2: TRect;
begin
rtButton2 := Button2.BoundsRect;
MapWindowPoints(handle, 0, rtButton2, 2); // 座标换算
ClipCursor(@rtButton2); // 限制鼠标移动区域
end;

// 还原
procedure TForm1.Button2Click(Sender: TObject);
var
rtScreen: TRect;
begin
rtScreen := Rect(0, 0, Screen.Width, Screen.Height);
ClipCursor(@rtScreen);
end;
智商无下限 2003-03-14
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
rtButton2: TRect;
begin
rtButton2 := Button2.BoundsRect;
MapWindowPoints(handle, 0, rtButton2, 2); // 座标换算
ClipCursor(@rtButton2); // 限制鼠标移动区域
end;
// 还原
procedure TForm1.Button2Click(Sender: TObject);
var
rtScreen: TRect;
begin
rtScreen := Rect(0, 0, Screen.Width, Screen.Height);
ClipCursor(@rtScreen);
end;

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧