ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年3月29日(金) 00:42

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 2 件の記事 ] 
作成者 メッセージ
 記事の件名: KeyDown
投稿記事Posted: 2017年5月30日(火) 19:10 
わからなくて悩んでいます。よろしくご教授ください。
Sub MainWnd_KeyDown(KeyCode As Long, flags As Long)
これのKeyCodeで矢印キーボタンを読んでいます。
shfitキー+矢印キーの場合はどう読めば良いでしょうか。


通報する
ページトップ
   
 記事の件名: Re: KeyDown
投稿記事Posted: 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です。


通報する
ページトップ
   
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 2 件の記事 ] 

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[19人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean