[問題] MMSYSTEM擷取搖桿資訊... 時好時壞[已解決]
開發平台(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