TControl类的OnMouseMove事件的触发原理(按下鼠标移出控件所在的区域后是靠什么消息或原理触发)(100分)

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

young2002

Unregistered / Unconfirmed
GUEST, unregistred user!
在某个panel区域按下鼠标键不放,然后移动鼠标,当鼠标指针移出panel所在的区域后
OnMouseMove事件仍被触发,请问触发的原理(在panel区域内是靠WM_MOUSEMOVE ,在区域外呢?
此时好像没有WM_MOUSEMOVE消息。我看了一下TControl的原码,好像就是在WM_MOUSEMOVE的消息处
理函数中触发OnMouseMove;我自己写了一个控件,基类为TGraphicControl,由于要对鼠标的移动
作一些处理,比如说声明两个事件:上半部分的移动事件和下半部分的移动事件,要求是按住鼠标
键移出控件的区域后能根据鼠标按下的位置响应不同的移动事件)
 
看一下TControl的WMLButtonDown, SetMouseCapture和SetCaptureControl就知道了。
 
搞定, 谢了
 
顶部