看一看《delphi高级开发指南》,里面讲的很清楚,我没有带来,所以就不贴了。

解决方案 »

  1.   

    用hook可以拦截所有的鼠标键盘消息。
      

  2.   

    1、在Form1的Public段,声明:
        Procedure MyOnMessage(var Msg: TMsg; var Handled: Boolean);
    2、具体实现:
    Procedure Tform1.MyOnMessage(var Msg: TMsg; var Handled: Boolean);
    begin
      if Msg.message=WM_RBUTTONDOWN then Showmessage('Right button');
    end;
    3、消息挂钩:
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Application.OnMessage:=MyOnMessage;
    end;
      

  3.   

    application.OnMessage过程代码在应用程序接收到消息时被调用,
    因此可以被用来判断消息类型并进行相应的处理,它的截获范围为
    整个应用程序,包括其内部的所有控件。
      

  4.   

    不是在delphi5版本以后的Additional组中有一个叫ApplicationEvents控件,
    ApplicationEvents1Message事件应该就是它的OnMessage事件