OnMouseMove这个事件怎么会这样???(10分)

  • 主题发起人 主题发起人 filmer
  • 开始时间 开始时间
F

filmer

Unregistered / Unconfirmed
GUEST, unregistred user!
大家都用过OnMouseMove这个事件吧,我用的时候发现了一个问题:
当正常情况下你的鼠标移上去时,就触发了OnMouseMove,X与Y是控件内部与鼠标的距离
当你按下鼠标再移上去时,却触发不了OnMouseMove,
但当你移上去,按下鼠标左键不动,触发了OnMouseMove后,把鼠标移出控件时(鼠标仍是按下的)
,还触发着OnMouseMove,X与Y竟可以是负数或大于控件高与宽的数,
请问大家这是为什么呢?

想问一问,如何在进行上面说的第三种情况的操作时,使X等于控件内部与鼠标的距离(
像第一种情况说的那样),或不使它触发OnMoveMove事件,并且Y仍然是可以是负数或大
于控件高与宽的数?
 
关注高手的回答!
 
这是因为,你点击任何一个窗口(窗体,按钮等),VCL都会调用SetCapture,在你松开
鼠标之前,所有的鼠标消息都会发送到这个窗口。明白了这个道理,你知道该怎么做了吧。
 

Similar threads

S
回复
0
查看
816
SUNSTONE的Delphi笔记
S
S
回复
0
查看
735
SUNSTONE的Delphi笔记
S
D
回复
0
查看
392
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部