• ベストアンサー

キーボード入力について

VC++6.0MFCのダイアログベースでデスクトップアプリを作成しています。 現状ですが、まずEscとEnterをクリックすると、 アプリが終了してしまいます。 なぜかわからないのですが、 そもそもキーボード入力を無効にしたいのです。 SetWindowsHookExというAPIを使えばできそうなんですが、 いかんせん、初心者でしてどの部分でどのような記述を すればいいのかがわかりません。 どなたかご教授ください。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • n_n
  • ベストアンサー率80% (4/5)
回答No.1

ダイアログベースのアプリは、CDialogが基底となっていて、IDOKまたはIDCANCELの メッセージを受け取ると。それぞれ、CDialoog::OnOK()、CDialoog::OnCancel()が 実行されて終了します。 [Enter]はIDOK、[ESC]はIDCANCELのメッセージが発行されているので終了しています。 この2つのキーで終了させなくする方法で手っ取り早いのは、ダイアログのクラスに   virtual void OnOK() {;}   virtual void OnCancel() {;} を追加してやれば終了しなくなります。 本当に終了したいときは、別途メッセージを作成して、そのメッセージを受け取った ときに、CDialoog::OnOK()またはCDialoog::OnCancel()を実行して終了してください。

関連するQ&A

専門家に質問してみよう