ダイアログベースのアプリをつくったのですが、
特に書いた覚えのない動作をしてこまっています。
それはダイアログが立ち上がってるときに「enter」
を押すと終了してしまうのです。
どうしたら防ぐことができるのですか?
環境
VC2005
MFC
ダイアログの規定の動作だったように気もしますが。
とりあえず、
http://techtips.belution.com/ja/vc/0015/
が参考になるかと。
これはOKとキャンセルを
押された時のコードのようなきがしますが?
私がいっているのはenterなのですが?
違いますでしょうか?
あるじゃん。
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ボタンにフォーカスがあるときに
スペースキー押したときなどは閉じてしまうけどね。
これを追加しようとするとエラーがでてしまいます。
メッセージマップに何か追加してやらなければいけないのでしょうか?
メッセージマップはいらない。
エラーって何だよ。
ツイート | ![]() |