入力項目(テキストボックス等)が存在するフォームで、
Enterキー、テンキーのEnterキー(キーボード右側に存在する)
のどちらがクリックされたか判別する方法があれば教えてください。
GetAsyncKeyState()やGetKeyboardState()では、
いずれも判別できなかったようです。
それと、テンキーのEnterキーは、VK_SEPARATOR = &H6C
でよろしいですよね?
MSDN 文書番号: JP77550 SDK32:2 つの ENTER キーの違い
Sayさん、ご回答ありがとうございました。
参照URLを拝見してみましたが、
これ(lParam)をVBで使用するとなると、CallWindowProc()あたりを使うことになるのでしょうか?
また、CallWindowProc()を使うとなると、フックを使用するしかないのでしょうか?
技術不足で申し訳ありません。
もしよろしければ教えていただけると幸いです。
フォーカスの有無に関わらず判別したいのなら、
グローバルキーフックする必要がありますが、
特定のアプリ内の話なら、ローカルキーフックでも、
サブクラス化でも対応できるでしょう。
もちろん、FormをCreateWindowし、
メッセージループで自前でWM_KEYDOWNを
拾ってもいいですが・・・。
Sayさん、たびたびご回答どうもありがとうございます。
やはりフックを使うことになるのですね。
フックについては全く知識不足ですので、
もう少し勉強してみます。
以前にフック(グローバルかローカルかは??)を使用して、
GetKeyNameTextでキー名から2つのEnterキーの判別をしようと試みましたが、
フォーム上に入力コントロール(テキストボックス等)があると、
上手くできませんでした。。。
ツイート | ![]() |