新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于C++的游戲操縱桿模擬鼠標的程序

        基于C++的游戲操縱桿模擬鼠標的程序

        作者: 時間:2010-09-16 來源:網絡 收藏

          捕獲后,Windows會把所有的消息發送給窗口Form1。當的方向鈕按被按下時,產生的是MM_JOY1MOVE消息,當功能按鈕被按下時,產生MM_JOY1BUTTONDOWN消息。在中分別響應并處理這兩個消息,就可以的移動和點擊。

          但是在C++ Builder中,這兩條消息并不是標準的Windows消息,這就需要我們自已定義和處理消息了。在C++ Builder里響應自定義消息的步驟為:

          1.建立消息映射表

          2.聲明消息處理函數

          3.編寫消息處理函數

          首先在代碼編輯窗口點擊右鍵,選擇彈出菜單的“Open Source/Header File”或是按熱鍵Ctrl+F6,打開窗體Form1頭文件“Uint1.h”。

          在窗體的TForm1類中的公有成員中加入代碼來建立消息映射表,把消息的處理權交給自定義的消息處理函數:

          public:

          BEGIN_MESSAGE_MAP

          MESSAGE_HANDLER(MM_JOY1BUTTONDOWN,Tmessage,OnJoyDown)

          MESSAGE_HANDLER(MM_JOY1MOVE,Tmessage,OnJoyMove)

          END_MESSAGE_MAP(Tform)

          然后在類的私有成員中加入代碼聲明消息處理函數:

          private:

          void __fastcall OnJoyDown(Tmessage Message);

          void __fastcall OnJoyMove(Tmessage Message);

          最后,按Ctrl+F6鍵切換回“Uint1.cpp”的編輯窗口,在末尾空白處添加下面兩個自定義的消息響應函數:

          //自定義的MM_JOY1BUTTONDOWN消息響應函數OnJoyDown

          void __fastcall TForm1::OnJoyDown(Tmessage Message)

          {

          if(Message.Wparam JOY_BUTTON1)

          {

          //左鍵按下

          mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);

          Caption=左鍵按下;

          }

          if(Message.Wparam JOY_BUTTON2)

          {

          //右鍵按下

          mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);

          Caption=右鍵按下;

          }

          if(Message.Wparam JOY_BUTTON3)

          {

          //模擬鼠標左鍵抬起

          mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);

          Caption=左鍵抬起;

          }

          if(Message.Wparam JOY_BUTTON4)

          {

          //模擬鼠標右鍵抬起

          mouse_event(MOUSEEVENTF_RIGHTUP,0,0,0,0);

          Caption=右鍵抬起;



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 乌拉特中旗| 克东县| 石狮市| 黄平县| 郴州市| 堆龙德庆县| 法库县| 怀化市| 江城| 称多县| 慈溪市| 达拉特旗| 巴彦县| 靖安县| 东丰县| 阿拉善左旗| 和田县| 阳东县| 广昌县| 安平县| 汉阴县| 安阳市| 黑龙江省| 黄大仙区| 萨迦县| 穆棱市| 林芝县| 建昌县| 巴南区| 永年县| 永顺县| 布尔津县| 宜川县| 故城县| 临邑县| 新乡县| 城口县| 射洪县| 叶城县| 博湖县| 周至县|