<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 游戲操縱桿模擬鼠標(biāo)的C++程序

          游戲操縱桿模擬鼠標(biāo)的C++程序

          作者: 時(shí)間:2012-07-02 來(lái)源:網(wǎng)絡(luò) 收藏

           }

          本文引用地址:http://www.ex-cimer.com/article/148825.htm

            //繼續(xù)傳遞消息

            Tform::Dispatch(Message);

            }

            //自定義的MM_JOY1MOVE消息響應(yīng)函數(shù)OnJoyDown

            void __fastcall TForm1::OnJoyMove(Tmessage Message)

            {

            int x,y;

            POINT pt;

            //取得當(dāng)前坐標(biāo)

            GetCursorPos(pt);

            x=LOWORD(Message.Lparam);

            y=HIWORD(Message.Lparam);

            if(x!=32678)

            {

            if(x)

            {

            //向右

            pt.x+=10;

            }

            else

            {

            //向左

            pt.x-=10;

            }

            }

            if(y!=32678)

            {

            if(y)

            {

            //向下

            pt.y+=10;

            }

            else

            {

            //向上

            pt.y-=10;

            }

            }

            //設(shè)置坐標(biāo)

            SetCursorPos(pt.x,pt.y);

            //繼續(xù)傳遞消息

            Tform::Dispatch(Message);

            }

            注意:調(diào)試運(yùn)行這個(gè),系統(tǒng)必須要安裝有。自定義的消息處理函數(shù)末尾最好加一句 TForm1::Dispatch(Message),這條語(yǔ)句的作用是讓消息繼續(xù)傳遞下去。Windows是使用用消息處理機(jī)制的,如果沒(méi)有這一句語(yǔ)句,消息將完全被攔截,Windows可能由于得不到消息而無(wú)法實(shí)現(xiàn)正常的功能。

            但是在C++ Builder中,這兩條消息并不是標(biāo)準(zhǔn)的Windows消息,這就需要我們自已定義和處理消息了。在C++ Builder里響應(yīng)自定義消息的步驟為:

            1.建立消息映射表

            2.聲明消息處理函數(shù)

            3.編寫(xiě)消息處理函數(shù)

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

            在窗體的TForm1類(lèi)中的公有成員中加入代碼來(lái)建立消息映射表,把消息的處理權(quán)交給自定義的消息處理函數(shù):

            public:

            BEGIN_MESSAGE_MAP

            MESSAGE_HANDLER(MM_JOY1BUTTONDOWN,Tmessage,OnJoyDown)

            MESSAGE_HANDLER(MM_JOY1MOVE,Tmessage,OnJoyMove)

            END_MESSAGE_MAP(Tform)

            然后在類(lèi)的私有成員中加入代碼聲明消息處理函數(shù):

            private:

            void __fastcall OnJoyDown(Tmessage Message);

            void __fastcall OnJoyMove(Tmessage Message);

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

            //自定義的MM_JOY1BUTTONDOWN消息響應(yīng)函數(shù)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)

            {

            //鼠標(biāo)右鍵按下

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

            Caption=右鍵按下;

            }

            if(Message.Wparam JOY_BUTTON3)

            {

            //鼠標(biāo)左鍵抬起

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

            Caption=左鍵抬起;

            }

            if(Message.Wparam JOY_BUTTON4)

            {

            //模擬鼠標(biāo)右鍵抬起

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

            Caption=右鍵抬起;

          c++相關(guān)文章:c++教程



          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();