Visual Studio 2005、C++、Windows XP。
次のような関数を呼び出す単一のボタンを持つ CDialog があります。
BEGIN_MESSAGE_MAP(Foo, BaseDlg) //BaseDlg は CDialog から継承します ON_BN_CLICKED(IDBAR、バー) END_MESSAGE_MAP()
[X] をクリックすると、ダイアログ ボックスが閉じます。
上記のコードを次のように変更します。
BEGIN_MESSAGE_MAP(Foo, BaseDlg) //BaseDlg は CDialog から継承します ON_BN_CLICKED(IDBAR、バー) ON_BN_CLICKED(IDBAZ、バズ) END_MESSAGE_MAP()
ダイアログ ウィンドウが閉じなくなりました。X がクリックされるたびに、Baz() が呼び出されます。2 番目の ON_BN_CLICKED() ハンドラは、何らかの理由で通常のダイアログを閉じる動作を置き換えています。
2 つ以上のボタンが機能に割り当てられているダイアログ ボックスを閉じるにはどうすればよいですか?