プロが教えるわが家の防犯対策術!

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

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

A 回答 (1件)

ダイアログベースのアプリは、CDialogが基底となっていて、IDOKまたはIDCANCELの


メッセージを受け取ると。それぞれ、CDialoog::OnOK()、CDialoog::OnCancel()が
実行されて終了します。
[Enter]はIDOK、[ESC]はIDCANCELのメッセージが発行されているので終了しています。

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

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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!