ゲーム パッド
Posted: 2006年6月30日(金) 14:18
ゲーム パッドからの入力方法を教えてください。
RegisterHotKey()の様に、非アクティブウィンドウで取れれば、最高なんですが・・
よろしくおねがいします。
RegisterHotKey()の様に、非アクティブウィンドウで取れれば、最高なんですが・・
よろしくおねがいします。
コード: 全て選択
'-----------------------------------------------------------------------------
' イベント プロシージャ
'-----------------------------------------------------------------------------
' このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。
' ウィンドウ ハンドル: hMainWnd
' TODO: この位置にグローバルな変数、構造体、定数、関数を定義します。
Declare Function joySetCapture Lib "winmm.dll" _
(ByVal hwnd As Integer, _ 'メッセージを受取るウィンドウのハンドル
ByVal uID As Integer, _ 'joyスティックID
ByVal uPeriod As Integer, _ 'Polling frequency, in milliseconds
ByVal bChanged As Integer _ '1 --- by threshold 0 --- by uPeriod
) As Integer
Dim glwp As DWord
Dim lwp As DWord
'-----------------------------------------------------------------------------
' ウィンドウメッセージを処理するためのコールバック関数
Function MainWndProc(hWnd As DWord, dwMsg As DWord, wParam As DWord, lParam As DWord) As DWord
' TODO: この位置にウィンドウメッセージを処理するためのコードを記述します。
If dwMsg = &H3A0 Then
'位置を表示させるためのプロシージャを呼び出す。
ShowPosition(LOWORD(lParam), HIWORD(lParam))
End If
If dwMsg = &H3A0 or dwMsg = &H3A2 Then
'ボタンを表示させるためのプロシージャを間接的に呼び出す。
glwp=wParam
End If
' イベントプロシージャの呼び出しを行います。
MainWndProc=EventCall_MainWnd(hWnd,dwMsg,wParam,lParam)
End Function
'-----------------------------------------------------------------------------
' ここから下は、イベントプロシージャを記述するための領域になります。
Sub MainWnd_Destroy()
'JOY_DestroyObjects()
PostQuitMessage(0)
End Sub
Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
'ジョイスティックの初期化(タイムアウト100ms)
joySetCapture(hMainWnd,0,100,0)
SetTimer(hMainWnd,1,1,AddressOf(ShowButton))
End Sub
'ジョイスティックの位置をテキストボックスに表示する。
Sub ShowPosition(xPos As Word, yPos As Word)
SetDlgItemText(hMainWnd,EditBox1,Str$(xPos))
SetDlgItemText(hMainWnd,EditBox2,Str$(yPos))
End Sub
Sub ShowButton()
If lwp<>glwp then
SetDlgItemText(hMainWnd,EditBox3,Str$(glwp))
lwp=glwp
End If
End Sub