by rikaeigo » 2017年6月02日(金) 21:58
入力フォーカスがウィンドウのボタンなどのコントロールに無ければ、これで判断できると思います。
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です。