如何实现QQ的自动隐蔵到屏幕边上?即当光标移到窗口上自动打开,当光标离开后又自动隐蔵到边上?自动打开容易,问题是光标离开后怎么做?我用WM_MOUSELEAVE,可是这个消息只有子窗口有效,对主窗口收不到这个消息。请高手指点。

解决方案 »

  1.   

    procedure CMMouseEnter(var msg:TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var msg: TMessage); message CM_MOUSELEAVE;
      

  2.   

    sysu(死树) procedure CMMouseEnter(var msg:TMessage); message CM_MOUSEENTER;非常好用但是
    procedure CMMouseLeave(var msg: TMessage); message CM_MOUSELEAVE;必须要使当前窗体失去焦点才行(必须点一下鼠标才行)
      

  3.   

    分数太少,不然我给你发个源代码过来,将Form从TAppbar继承,只要很少的几句代码就可以实现
      

  4.   

    我看了所有在CSDN上的关于这方面的资料,觉得用Timer最好,因为用CM_MOUSELEAVE时,如果鼠标太快就收不到消息,我用Timer好多了。另外我又碰到个新问题,就是在用
    procedure CMMouseEnter(var msg:TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var msg: TMessage); message CM_MOUSELEAVE;
    时,在窗口过程中是收到了事件,但是无法知道是哪个子窗口的?有的人说子窗口的参数是Msg.lPwaram,但我通过测试怎么也不对。难道要为每个子窗口重写个控件吗?为了这么个小小功能,要写控件实在犯不着,不知还有其它的方法吗?