enterを押すと終了する


七色の王子様  2007-09-05 06:49:50  No: 66196

ダイアログベースのアプリをつくったのですが、
特に書いた覚えのない動作をしてこまっています。
それはダイアログが立ち上がってるときに「enter」
を押すと終了してしまうのです。
どうしたら防ぐことができるのですか?
環境
VC2005
MFC


瀬戸っぷ  2007-09-05 08:23:09  No: 66197

ダイアログの規定の動作だったように気もしますが。

とりあえず、
http://techtips.belution.com/ja/vc/0015/
が参考になるかと。


七色の王子様  2007-09-05 08:41:48  No: 66198

これはOKとキャンセルを
押された時のコードのようなきがしますが?
私がいっているのはenterなのですが?
違いますでしょうか?


wclrp ( 'o')  2007-09-05 09:04:17  No: 66199

あるじゃん。

BOOL CxxxxDialog::PreTranslateMessage(MSG* pMsg)
{
    if(pMsg->message == WM_KEYDOWN) {        // キーが押された?
        if(pMsg->wParam == VK_RETURN) {      // リターンキー?
            return FALSE;
        }
        else if(pMsg->wParam == VK_ESCAPE) {  // エスケープキー?
            return FALSE;
        }
    }

    return CDialog::PreTranslateMessage(pMsg);
}

return FALSEか、TRUEかで微妙に動作違うよ。

OKボタンにフォーカスがあるときに
スペースキー押したときなどは閉じてしまうけどね。


七色の王子様  2007-09-05 09:14:12  No: 66200

これを追加しようとするとエラーがでてしまいます。
メッセージマップに何か追加してやらなければいけないのでしょうか?


wclrp ( 'o')  2007-09-05 09:45:09  No: 66201

メッセージマップはいらない。
エラーって何だよ。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加