二つのEnterキーを判別するには


だー  2002-06-07 23:37:59  No: 75721

入力項目(テキストボックス等)が存在するフォームで、
Enterキー、テンキーのEnterキー(キーボード右側に存在する)
のどちらがクリックされたか判別する方法があれば教えてください。

GetAsyncKeyState()やGetKeyboardState()では、
いずれも判別できなかったようです。

それと、テンキーのEnterキーは、VK_SEPARATOR = &H6C
でよろしいですよね?


Say  2002-06-09 22:17:30  No: 75722

MSDN 文書番号: JP77550 SDK32:2 つの ENTER キーの違い 

http://support.microsoft.com/default.aspx?scid=%2Fisapi%2Fgomscom%2Easp%3Ftarget%3D%2Fjapan%2Fsupport%2Fkb%2Farticles%2Fjp77%2F5%2F50%2Easp&LN=JA


だー  2002-06-12 18:48:24  No: 75723

Sayさん、ご回答ありがとうございました。

参照URLを拝見してみましたが、
これ(lParam)をVBで使用するとなると、CallWindowProc()あたりを使うことになるのでしょうか?
また、CallWindowProc()を使うとなると、フックを使用するしかないのでしょうか?

技術不足で申し訳ありません。
もしよろしければ教えていただけると幸いです。


Say  2002-06-12 20:01:00  No: 75724

フォーカスの有無に関わらず判別したいのなら、
グローバルキーフックする必要がありますが、
特定のアプリ内の話なら、ローカルキーフックでも、
サブクラス化でも対応できるでしょう。

もちろん、FormをCreateWindowし、
メッセージループで自前でWM_KEYDOWNを
拾ってもいいですが・・・。


だー  2002-06-14 18:13:46  No: 75725

Sayさん、たびたびご回答どうもありがとうございます。

やはりフックを使うことになるのですね。
フックについては全く知識不足ですので、
もう少し勉強してみます。

以前にフック(グローバルかローカルかは??)を使用して、
GetKeyNameTextでキー名から2つのEnterキーの判別をしようと試みましたが、
フォーム上に入力コントロール(テキストボックス等)があると、
上手くできませんでした。。。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加