如何锁定鼠标在一定范围内活动? ( 积分: 20 )

  • 主题发起人 主题发起人 墨剑
  • 开始时间 开始时间

墨剑

Unregistered / Unconfirmed
GUEST, unregistred user!
想如下锁定鼠标在X区域外面活动,即鼠标不能到X区域来。
--------------
| _____________ |
| | | |
| | X | |
| ------------- |
-------------
 
想如下锁定鼠标在X区域外面活动,即鼠标不能到X区域来。
--------------
| _____________ |
| | | |
| | X | |
| ------------- |
-------------
 
ClipCursor(限制区域),象你这种限制在某个区域以外的地方估计得用其它办法,比如鼠标hook
 
ClipCursor是否只能限制在一个矩形内呢?如果是,就是太弱智了
 
就是这么弱智, 微软的问题
 
具体做什么应用
 
具体就是不要让鼠标进入X区域
 
加一个 ApplicationEvents,
写事件代码,
如下是一个点右键得到坐标的处理过程代码示范,
自己变通下,mouse move的时候判断后控制下坐标,
进入禁区则移出:

procedure TmyForm.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
var
ovText : OLEVariant;
MousePos: TPoint;
// ActiveEL ,
el : IHTMLElement;
begin
if not MouseTrap then exit;
if msg.message = WM_RBUTTONDOWN then
begin
MousePos.X := LOWORD(msg.lParam);
Mousepos.Y := HIWORD(msg.lParam);
memo2.lines.add('Mouse Click! x='+inttostr(MousePos.X)+' , y='+inttostr(MousePos.y) ) ;
el := doc.elementFromPoint(MousePos.x, MousePos.y);



Handled:=true;
MouseTrap := false;
end;
end;
 
唉,如果要使用Application的事件我哪会提出这种问题?
 
要学会提问题,
别人问你具体的情况又不说,
真给了回答又有前提出来了,
ApplicationEvents是个简单的解决方法,
使用mouse hook 处理步骤也差不多的,
建议你搜索"mouse hook",保证有可用答案
 
割你自己的肉给你补肉,放你自己的血给你输血,徒劳无功,何苦
 
接受答案了
 

Similar threads

回复
0
查看
890
不得闲
S
回复
0
查看
841
SUNSTONE的Delphi笔记
S
S
回复
0
查看
824
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
928
SUNSTONE的Delphi笔记
S
后退
顶部