RT,ole控件(TBar..条形码控件是微软自带的一个active控件)没有处理鼠标事件,down,up,move,enter ,leave等,我在重写该控件时,在里面处理了消息事件(TWMMouse),发布了这些事件,但是当我在运行期移动该控件时,如果鼠标移动过快,就很容易丢失焦点,而被其它控件获取焦点,导致触发其它控件的mousemove事件,请问有什么办法可以解决?另请上一贴子 关于运行期控件拖拉 的几位朋友来接分...

解决方案 »

  1.   

    在你写的这个增加的鼠标事件down,move里面添加命令,使其它控件失去禁止焦点功能,再在up里面写上开启其它控件的焦点功能.
      

  2.   

    与其在down,move让其他控件失去焦点,不如让自己获取焦点。
    你可以试试~~
      

  3.   

    在移动的时候,把其他控件禁用(Enable := False)
      

  4.   

    我覺得這種方法還是較好的,可以再增加一個變量去判斷是否TBar獲得焦點。
      

  5.   

    试了一下禁用其它控件的mousemove事件,效果不怎么好,就是快速拖动时,会停在那里...
      

  6.   

    其实你的情况按说不应该出现的,出现这样的情应该是在处理反应不过来的时候出现的间断,在处理器反应过来时已经断定你的鼠标在控件上了,我想加入一个IdAntiFreeze控件你试试.
      

  7.   

    其实还是那回事,快速移动时,该控件焦点丢失,跑到其它控件上,触发了别的控件的mousemove事件,只不过我把其它控件的mousemove事件屏蔽了,所以就停住不动,另,IdAntiFreeze 这个控件是啥?