如何像菜单一样。当鼠标事件不是发生在自己上时,把自己藏起来?如何知道别的控件发生了鼠标和键盘事件??????用自定义的窗体过程可以吗?那该截获什么消息???用自定义的窗体过程是不是太绕弯子了?

解决方案 »

  1.   

    //窗体失去焦点时出发的消息
    procedure CMDeactivate(var Message: TCMDeactivate); message CM_DEACTIVATE;
    procedure WMActivate(var Message: TWMActivate);message WM_ACTIVATE ;
      

  2.   

    以前整理的
    http://www.qunluo.com/bbs/topic.asp?forumid=37&topic=20030802090157&page=1
      

  3.   

    自定义的事件?TNotifyEvent?
    在里的类里声明啊,把事件声明成私有的,在外部用属性包装一下就可以了
      

  4.   

    应该有个鼠标消息 CM_MOUSERLEAVE 大概是这样,你处理这个消息就行了
      

  5.   

    是这样的 一个VISIBLE为FALSE的控件不再响应鼠标事件,因为在UI上已经无法GETCAPTURE,要恢复它的VISIBLE,可以通过其他控件的消息来响应了,比如在FORM.ONMOUSEMOVE判断鼠标移动到了原来这个控件的RECT时,则恢复VISIBLE