入力フォーカスがウィンドウのボタンなどのコントロールに無ければ、これで判断できると思います。
If GetAsyncKeyState(VK_SHIFT) < 0 Then
If GetAsyncKeyState(37) < 0 Then
'●●●●●● Shift + ←押された
OutputDebugString("Shift + ←押された")
ElseIf GetAsyncKeyState(38) Then '↑
'●●●●●● Shift + ↑押された
OutputDebugString("Shift + ↑押された")
EndIf
EndIf
-----------------------------------------------------------------
フォーカスがボタンなどに行ってしまう場合は
Createなどでタイマーをセットして、
SetTimer(hMainWnd,0,100,0) '100の所がタイマー処理呼び出し間隔
Sub MainWnd_Timer(TimerID As DWord)
If GetAsyncKeyState(VK_SHIFT) < 0 Then
If GetAsyncKeyState(37) < 0 Then
'●●●●●● Shift + ←押された
OutputDebugString("Shift + ←押された")
ElseIf GetAsyncKeyState(38) Then '↑
'●●●●●● Shift + ↑押された
OutputDebugString("Shift + ↑押された")
EndIf
EndIf
End Sub
こうすればOKです。
入力フォーカスがウィンドウのボタンなどのコントロールに無ければ、これで判断できると思います。
If GetAsyncKeyState(VK_SHIFT) < 0 Then If GetAsyncKeyState(37) < 0 Then '●●●●●● Shift + ←押された OutputDebugString("Shift + ←押された") ElseIf GetAsyncKeyState(38) Then '↑ '●●●●●● Shift + ↑押された OutputDebugString("Shift + ↑押された")
EndIf EndIf
-----------------------------------------------------------------
フォーカスがボタンなどに行ってしまう場合は
Createなどでタイマーをセットして、 SetTimer(hMainWnd,0,100,0) '100の所がタイマー処理呼び出し間隔
Sub MainWnd_Timer(TimerID As DWord) If GetAsyncKeyState(VK_SHIFT) < 0 Then If GetAsyncKeyState(37) < 0 Then '●●●●●● Shift + ←押された OutputDebugString("Shift + ←押された") ElseIf GetAsyncKeyState(38) Then '↑ '●●●●●● Shift + ↑押された OutputDebugString("Shift + ↑押された")
EndIf
EndIf
End Sub
こうすればOKです。
|