ab.com コミュニティ https://www.activebasic.com/forum/ |
|
KeyDown https://www.activebasic.com/forum/viewtopic.php?t=4618 |
ページ 1 / 1 |
作成者: | monta [ 2017年5月30日(火) 19:10 ] |
記事の件名: | KeyDown |
わからなくて悩んでいます。よろしくご教授ください。 Sub MainWnd_KeyDown(KeyCode As Long, flags As Long) これのKeyCodeで矢印キーボタンを読んでいます。 shfitキー+矢印キーの場合はどう読めば良いでしょうか。 |
作成者: | rikaeigo [ 2017年6月02日(金) 21:58 ] |
記事の件名: | Re: KeyDown |
入力フォーカスがウィンドウのボタンなどのコントロールに無ければ、これで判断できると思います。 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です。 |
ページ 1 / 1 | 全ての表示時間は UTC+09:00 です |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |