[問題] MMSYSTEM擷取搖桿資訊... 時好時壞[已解決]

看板C_and_CPP作者 (黑白夜衝爽哥)時間13年前 (2012/08/30 22:14), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 2008 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) winmm.lib 問題(Question): 使用MMSystem.h中的"JOYINFOEX" 擷取搖桿資訊,可以抓到六軸(x,y,z,r,u,v) 想要把軸的資訊顯示在Windows Form的Textbox中 (1)*有時候編譯完成,坐標軸的數值會爆掉 變成"127"與"32767"這兩個字跳來跳去→使用偵錯功能中查看變數值的功能 (2)*有時候又正常,座標軸的數值能隨著類比搖桿的變化,在0~65535之間跑來跑去 餵入的資料(Input): x 單純檢視搖桿資訊 預期的正確結果(Expected Output): (2)中敘述的,希望值不要跑掉 錯誤結果(Wrong Output): (1) 把某軸的資訊丟入textbox後發現其值變成"127"、"32767"這兩個數字交互閃爍 ※ 有時候編譯完成卻又可以正常依照類比搖桿的幅度在0~65535間跑 程式碼(Code):(請善用置底文網頁, 記得排版) 使用class功能 宣告了JOYINFOEX型態的"JOYAxis" 舉例: header file: #include <Windows.h> #include <MMSystem.h> #prama coment (lib, "Winmm.lib") class Joy{ public: JOYINFOEX JOYAxis; //...(略) }; 主程式: //...(略) Joy J; this->textbox->Text = Convert::ToString(J.JOYAxis.dwRpos); //...(略) 補充說明(Supplement): 使用偵錯功能直接監看Header file中的JOYAxis.dwRpos時 發現值就是"127"&"32767"跳來跳去 感謝各位高手高手高高手._. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.243.5.155 MSDN的MMSystem.h(Multimedia System)說明 http://msdn.microsoft.com/en-us/subscriptions/ms709358(v=vs.85).aspx 由於我沒有設定JOYINFOEX中的Flag 所以每次建立物件之後Flag中放的都是垃圾 Flag決定了JOYINFOEX的成員要擷取系統中的哪些值,要手動設定 ※ 編輯: stu85010 來自: 111.243.30.137 (09/01 16:32)

09/02 01:38, , 1F
推一下回來分享解法:)
09/02 01:38, 1F

09/03 16:27, , 2F
推~~
09/03 16:27, 2F
文章代碼(AID): #1GFtKfNC (C_and_CPP)