• ベストアンサー
  • すぐに回答を!

キーボード入力について

  • 質問No.92513
  • 閲覧数239
  • ありがとう数0
  • 回答数1

お礼率 10% (4/39)

VC++6.0MFCのダイアログベースでデスクトップアプリを作成しています。

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

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

  • 回答No.1
  • ベストアンサー

ベストアンサー率 80% (4/5)

ダイアログベースのアプリは、CDialogが基底となっていて、IDOKまたはIDCANCELの
メッセージを受け取ると。それぞれ、CDialoog::OnOK()、CDialoog::OnCancel()が
実行されて終了します。
[Enter]はIDOK、[ESC]はIDCANCELのメッセージが発行されているので終了しています。

この2つのキーで終了させなくする方法で手っ取り早いのは、ダイアログのクラスに
  virtual void OnOK() {;}
  virtual void OnCancel() {;}
を追加してやれば終了しなくなります。

本当に終了したいときは、別途メッセージを作成して、そのメッセージを受け取った
ときに、CDialoog::OnOK()またはCDialoog::OnCancel()を実行して終了してください。
関連するQ&A

ピックアップ

ページ先頭へ