你在什么时候指派了OnHotKey事件?你给出的代码里没有啊。

解决方案 »

  1.   

    不要使用WndProc这个名字,换一个试试
      

  2.   

    或者,去掉 Message这个指示,我弄不明白,你干吗要用这个指示,明明这个函数是另外一个窗口的消息处理函数,就不需要这个指示了,!!!!!
      

  3.   

    精简一下你的代码吧。我试过,用下面的代码肯定可以工作:procedure TForm1.WMhotkeyhandle(var msg:tmessage);
    begin
      if (Msg.LParamHi = $41) and (Msg.LParamLo = Mod_Control or Mod_Alt) then
      begin
         msg.Result:=1;
         MessageBox(0,'a','b',MB_OK);
      end;
    end;
      

  4.   

    有人做过hotkey的组件吗?我想看看。
      

  5.   

    老兄你给FOnHotkey赋值了吗?
    我没看见呀
    怎么也的写个这样的语句:
    FOnHotkey := OnHotKey  //假设已定义了 procedure  OnHotKey ...
      

  6.   

    procedure WndProc(var Msg: TMessage); message WM_Hotkey;改为
    procedure WndProc(var Msg: TMessage);procedure WndProc(var Msg: TMessage);
    begin
      with Msg do
        if Msg = WM_Hotkey then begin