Я пишу приложение MFC MDI, которое я запустил с помощью мастера, в Visual Studio 2017. В этом приложении у меня есть диалоговые окна с панелями инструментов. Но когда отображаются диалоговые окна, кнопки панели инструментов не активируются, хотя классы диалогов содержат обработчики для идентификаторов кнопок.
Например, я создал 1 тестовый класс для диалога с именем CDlg с панелью инструментов с кнопкой с идентификатором ID_DIALOG_1. У меня есть соответствующая запись карты сообщений и соответствующая функция обработчика внутри CDlg:
BEGIN_MESSAGE_MAP(CDlg, CDialogEx)
ON_COMMAND(ID_DIALOG_1, &CDlg::OnDialog1)
END_MESSAGE_MAP()
void CDlg::ODialog1()
{
// TODO: Add your command handler code here
}
Но кнопка на панели инструментов отключена.
Я экспериментировал с помещением обработчика как внутри класса документа, так и в CDlg, и в этом случае кнопка включена, и вызывается обработчик CDlg :: OnDialog1. Я также экспериментировал, чтобы поместить меню в класс CDlg с идентификатором ID_DIALOG_1, и в этом случае CDlg :: OnDialog1 вызывается при нажатии на элемент меню, но кнопка панели инструментов остается отключенной.
Итак, возможно ли иметь обработчик команды для идентификатора кнопки ID_DIALOG_1 внутри класса CDlg для панели инструментов?