Visual Studio 2005, C ++, Windows XP.
У меня есть CDialog с одной кнопкой, которая вызывает такую функцию:
BEGIN_MESSAGE_MAP(Foo, BaseDlg) //BaseDlg inherits from CDialog
ON_BN_CLICKED(IDBAR, Bar)
END_MESSAGE_MAP()
Диалоговое окно закрывается при нажатии кнопки «X».
Я изменяю вышеуказанный код на:
BEGIN_MESSAGE_MAP(Foo, BaseDlg) //BaseDlg inherits from CDialog
ON_BN_CLICKED(IDBAR, Bar)
ON_BN_CLICKED(IDBAZ, Baz)
END_MESSAGE_MAP()
Мое диалоговое окно больше не будет закрываться. Всякий раз, когда нажимается X, вызывается Baz (). Второй обработчик ON_BN_CLICKED () по какой-то причине заменяет нормальное поведение закрытия диалога.
Как закрыть диалоговое окно, в котором две или более кнопок сопоставлены с функциями?