EditBox内でEnterキーを押した時、押されるボタンの設定方法は?

解決


けーぼう  2004-09-15 04:31:57  No: 54494  IP: [192.*.*.*]

VC++初心者のけーぼうです。

MFCのEditBox中でEnterキーを押した時、画面上の「OK」ボタンを押したのと同じ動作をします。
この「押されるボタン」を指定したいのですが、どのように指定すればうか?

編集    削除
けーぼう  2004-09-15 04:34:03  No: 54495  IP: [192.*.*.*]

文章が壊れてしまいました。

> どのように指定すればうか?
正しくは、
「どのように指定すればよろしいでしょうか?」
です。

よろしくお願いします。

編集    削除
KING・王  2004-09-15 17:07:58  No: 54496  IP: [192.*.*.*]

「押されるボタン」のプロパティで、「標準のボタン」にチェックを入れると、
Enterが押されたときに、そのボタンがクリックされたのと、
同じ動作となるはずです。

#どのボタンにも「標準のボタン」のチェックが無い場合は、
#どうも「OK」が押されたのと同じ動作をしているようですが。。。(詳しくは見ていません)

編集    削除
けーぼう  2004-09-15 19:33:10  No: 54497  IP: [192.*.*.*]

KING・王さん、レスありがとうございます。

ボタンのプロパティの「Default Button」をTrueにすることで、指定できました。
ありがとうございます。

ところで、このDefault Buttonを動的に変更することはできないのでしょうか。
CButton, CDialog, CWndクラスのメンバにそれらしいものは見つかりませんでした。
エディットボックスA入力中はボタンAを、エディットボックスB入力中はボタンBを指定したいと思っています。

編集    削除
シャノン  2004-09-15 19:58:32  No: 54498  IP: [192.*.*.*]

ボタンのスタイルに BS_DEFPUSHBUTTON を持たせれば可能かと思いますが
複数のボタンにこのスタイルを持たせたときに、どうなるのかはわかりません。
デフォルトボタンを変更するときは、デフォルトボタンは同一ダイアログ上にひとつだけ存在するようにすべきだと思います。

編集    削除
シャノン  2004-09-15 20:01:11  No: 54499  IP: [192.*.*.*]

前言撤回。

CDialog::SetDefID が、ダイアログのデフォルトボタンを設定するメソッドみたいですね。

編集    削除
けーぼう  2004-09-15 20:11:08  No: 54500  IP: [192.*.*.*]

シャノンさん、いつもお世話になっています。
早速のレスありがとうございました。

ボタンのスタイルの設定でうまくいきました。
サンプルは、MSDNのCButton::GetButtonStyleにありました。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclib/html/_mfc_cbutton.3a3a.getbuttonstyle.asp

ありがとうございました。

編集    削除
けーぼう  2004-09-15 20:14:19  No: 54501  IP: [192.*.*.*]

あ。
そんな便利なものがあったのですね。
CDialog::SetDefIDを使ってみます。

ありがとうございました。

編集    削除