При создании объекта CMFCRibbonButton
необходимо указать соответствующий идентификатор команды (см. Документацию для конструктора CMFCRibbonButton
здесь ). Включение и отключение кнопок ленты затем выполняется с помощью обычного механизма обновления команд в MFC с использованием класса CCmdUI
.
Например, если у вас есть кнопка ленты с идентификатором команды ID_MYCOMMAND
, и вы хотите обработать эту команду в классе представления вашего приложения, вы должны добавить эти функции в класс:
// MyView.h
class CMyView : public CView {
// ...
private:
afx_msg void OnMyCommand();
afx_msg void OnUpdateMyCommand(CCmdUI* pCmdUI);
DECLARE_MESSAGE_MAP()
};
и внедрить их в файл .cpp:
// MyView.cpp
void CMyView::OnMyCommand() {
// add command handler code.
}
void CMyView::OnUpdateMyCommand(CCmdUI* pCmdUI) {
BOOL enable = ...; // set flag to enable or disable the command.
pCmdUI->Enable(enable);
}
Вы также должны добавить ON_COMMAND
и ON_UPDATE_COMMAND_UI
записи в карту сообщений для класса CMyView
:
// MyView.cpp
BEGIN_MESSAGE_MAP(CMyView, CView)
ON_COMMAND(ID_MYCOMMAND, &CMyView::OnMyCommand)
ON_UPDATE_COMMAND_UI(ID_MYCOMMAND, &CMyView::OnUpdateMyCommand)
END_MESSAGE_MAP()
Для получения дополнительной информации о картах сообщений в MFC см. TN006: Карты сообщений в MSDN.
Надеюсь, это поможет!