- ベストアンサー
キーボード入力について
VC++6.0MFCのダイアログベースでデスクトップアプリを作成しています。 現状ですが、まずEscとEnterをクリックすると、 アプリが終了してしまいます。 なぜかわからないのですが、 そもそもキーボード入力を無効にしたいのです。 SetWindowsHookExというAPIを使えばできそうなんですが、 いかんせん、初心者でしてどの部分でどのような記述を すればいいのかがわかりません。 どなたかご教授ください。 よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ダイアログベースのアプリは、CDialogが基底となっていて、IDOKまたはIDCANCELの メッセージを受け取ると。それぞれ、CDialoog::OnOK()、CDialoog::OnCancel()が 実行されて終了します。 [Enter]はIDOK、[ESC]はIDCANCELのメッセージが発行されているので終了しています。 この2つのキーで終了させなくする方法で手っ取り早いのは、ダイアログのクラスに virtual void OnOK() {;} virtual void OnCancel() {;} を追加してやれば終了しなくなります。 本当に終了したいときは、別途メッセージを作成して、そのメッセージを受け取った ときに、CDialoog::OnOK()またはCDialoog::OnCancel()を実行して終了してください。