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

解決


けーぼう  2004-09-15 04:31:57  No: 54494

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

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


けーぼう  2004-09-15 04:34:03  No: 54495

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

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

よろしくお願いします。


KING・王  2004-09-15 17:07:58  No: 54496

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

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


けーぼう  2004-09-15 19:33:10  No: 54497

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

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

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


シャノン  2004-09-15 19:58:32  No: 54498

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


シャノン  2004-09-15 20:01:11  No: 54499

前言撤回。

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


けーぼう  2004-09-15 20:11:08  No: 54500

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

ボタンのスタイルの設定でうまくいきました。
サンプルは、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

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

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


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

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






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