游戏杆有MM_JOY1MOVE的消息,但是delphi没有这个消息我该怎么定义一个消息处理函数呢

解决方案 »

  1.   

    那么怎么定义MM_JOY1MOVE的消息处理函数
    我刚刚学习delphi,大家帮帮忙阿
      

  2.   

    unit unit1
    type
       form1:=class(Tform)
          ...
       public
          ...
       privite
          procedure mymsgproc(参数列表);
              message MM_JOY1MOVE;
      end;
    implementation
      procedure Tform1.mymsgproc(参数列表);
       begin
         这里添加你的code
       end;
      ....
    end.
      

  3.   

    错了,修改一下:
    unit unit1
    type
       form1:=class(Tform)
          ...
       public
          ...
       privite
          procedure mymsgproc(msg:Tmessage);
              message MM_JOY1MOVE;
      end;
    implementation
      procedure Tform1.mymsgproc(msg:Tmessage);
       begin
         这里添加你的code
       end;
      ....
    end.
      

  4.   

    修改 xjspa(天涯)的代码,如下
    unit unit1
    cosnt
      MM_JOY1MOVE = WM_USER+100; // 加上这句type
       form1:=class(Tform)
          ...
       public
          ...
       privite
          procedure mymsgproc(msg:Tmessage);
              message MM_JOY1MOVE;
      end;
    implementation
      procedure Tform1.mymsgproc(msg:Tmessage);
       begin
         这里添加你的code
       end;
      ....
     
    end.
      

  5.   

    要先捕捉输入才能得到消息:
    joySetCapture(Handle, JOYSTICKID1, 0, False);
      

  6.   

    定义消息常量写错了,应该是
    const //
      MM_JOY1MOVE = WM_USER+100; 使用的时候用 PostMessage 或 SendMessage 把消息发送到目标就行。
      

  7.   

    to fancier(OP&&(C/C++)) :
    MM_JOY1MOVE不用自己定义,mmsystem.pas里已经有了,自己定义反而收不到消息。
      

  8.   

    我已经捕捉了joySetCapture,而且提示"捕捉成功"了,我用的方法如下:procedure TForm1.WndProc(var Msg: TMessage);
    var
      CallInherited: Boolean;
    begin
      CallInherited := True;
      if Msg.Msg = MM_JOY1MOVE  then
      begin
         showmessage('11');
      end;
      if CallInherited then inherited WndProc(Msg);
    end;我移动腰杆,但是没有反应,事实可以证明,当事件为其他时候响应的,但是摇杆没有反应
      

  9.   

    To sysu(死树): 受教了!关注!