帮我看一下 CM_MOUSELEAVE 和 CM_MOUSEENTER 这两个消息的定义。值是好多。谢谢

解决方案 »

  1.   

    CM_MouseLeave鼠标移出窗体时发生
    但是好象不太灵敏,当鼠标快速移出窗体时,就收不到这个消息
    应该用wm_mouseleave这个消息结合trackmouseevent这个api使用!绝对好用,呵呵,只不过比cm_mouseleave麻烦一点点了!
      

  2.   

    反之
    另外一个是鼠标进入时候发生
    给你写个例子八:)
    ---------------------
    procedure CMMouseEnter(var Message: TMessage); message CM_MouseEnter;
    procedure CMMouseLeave(var Message: TMessage); message CM_MouseEnter;
    procedure TForm1.CMMouseEnter(var Message: TMessage);
    begin
      if TObject(Message.LParam) = Label1 then
        Label1.Caption := 'taxi';
    end;procedure TForm1.CMMouseLeave(var Message: TMessage);
    begin
      if TObject(Message.LParam) = Label1 then
        Label1.Caption := '游少爷';
    end;
      

  3.   

    对,一般是写成处理消息的时候这么写,
    不过我一般还是用OnMouse...事件直接处理的
      

  4.   

    别提了,这个消息是 Delphi 自己搞的,我在 vb 里试不出来。
    昨天问这个问题是想问它的值是多少,后来装了 delphi 找到了。
    今天继续讨论。
    我用了包括 SetCapture,TrackMouseEvent,以及定时器三种经典方法,最后还是定时器了,汗。
    用 Spy++ 也捕获不到任何鼠标移出的消息。
    不知道 .net 的 mouseleave 是怎么弄出来的