程序控制鼠标(100分)

  • 主题发起人 主题发起人 ycxy
  • 开始时间 开始时间
Y

ycxy

Unregistered / Unconfirmed
GUEST, unregistred user!
我在Form上放一个Panel,如何实现当鼠标移入
Panel内用户不能控制鼠标,而用编程来控制
鼠标的移动.
 
可以用wm_mousemove实现吧? 会闪烁(如果你同时移动鼠标), 不太好:-(
 
设定form的KeyPreview为true,在form 的protected中定义自己的鼠标相应消息处理过程 procedure WMMouseMove(var Messaage:TMessage);message WM_MOUSEMOVE;坐标在Panel范围内的加以控制
 
馊主意:
进入panel把鼠标指针消除(可以做个空的cursor). 然后自己画个鼠标指针
按程序预先设定的动作运动
:)))
 
呵呵,厉害!记得有个SIMULATOR,可以搞定的说
 
简单方法:
当鼠标移入Panel内时,将鼠标的移动范围设置为一点
(MapWindowPoints),然后自己可以用程序进行控制。
 
用户应该有绝对权利控制鼠标!!!
不应把控制鼠标作为防止用户误操作的解决方案,而应想出更好的兼容方法。
话说回来,既然用户根本不能控制鼠标,那即使程序控制鼠标又有什么用?
鼠标如何移出此区域?依我看按照您的题意一个比较如以接受的方法可以是:
鼠标移入后立即隐藏它,用户必须做完此框内的所有必须做的事后,恢复鼠标,
而且它的位置在框外,同时设置一个开关确保即使下次鼠标再移入时也不会引
发上次的 隐藏/做事 事件,除非用户强调一定要做。
这样觉得如何?
 
应该是隐藏。
 
cmldy:
我刚开始也这么想,后来觉得会不会把鼠标移动范围设置为一点后,
自己发消息让鼠标动,也动不了?
 
注意几个问题:
1、当鼠标进入Panel后,你会收到CM_MOUSEENTER(CM_BASE + 19)消息。
2、若你要截获鼠标输入,不妨试试做一个钩子。
3、若要移动鼠标,则使用SetCursorPos函数,其中的X,Y坐标为屏幕坐标。
抱歉,我没有自己试过,你先试试看,不行再想别的办法。
 
1. cursor为空, disable wm_mousemove
2. draw a new cursor image, and make it move as u wish
3. after all action, restore cursor and wm_mousemove
4. this is not a good idea but runable:-)
 
我的想法是作一个演示程序,Panel上放演示图片,
后台放解说词,在Panel内用鼠标移动来模拟操作,
我觉得Another_Yes的想法不错,但是替换系统鼠
标后如何加入自己的鼠标和加以控制呢?
 
Another_Yes:
PrintDBGrid在D4下安装出错,是否有新的
Email me One Copy?
 
多人接受答案了。
 
后退
顶部