Изменение элемента управления ленты во время выполнения

Я использую Windows Ribbon Framework в неуправляемом приложении C++ в Visual Studio. Можно ли добавить кнопку или другой элемент управления во время выполнения? Я могу настроить свою ленту, используя IUIFramework::LoadUI, но потом не могу ее изменить.

2 ответа

Невозможно добавить или удалить кнопку во время выполнения, но вы можете скрыть или показать вкладку или группу во время выполнения, используя режимы приложения, и вы можете установить любой текст кнопки и изображения во время выполнения.

Таким образом, вы можете объявить и использовать многоцелевые кнопки, которые будут отображаться только в том случае, если установлен конкретный режим приложения, и содержат тексты и изображения, определенные во время выполнения.

Вы можете переключать режимы во время выполнения в зависимости от того, что определено в разметке - подробности см. Здесь:

После определения режимов в разметке их можно легко включить или отключить в ответ на контекстные события. Как упоминалось ранее, приложения ленты всегда запускаются в режиме по умолчанию 0. После того, как приложение инициализировано и режим 0 активен, набор активных режимов можно изменить, вызвав функцию IUIFramework::SetModes.

Здесь есть комментарий о том, что изменения во время выполнения довольно ограничены - это касается сторонней оболочки, обратите внимание.

Вы можете динамически добавлять элементы во время выполнения только к элементам управления галереи:

ComboBox, SplitButtonGallerty, DropDownGallery и InRibbonGallery

Если вы знаете, что хотите добавить заранее, вы можете использовать ContextualTabs и ApplicationModes, чтобы изменить видимость (предопределенных) вкладок и групп.

К сожалению, вы можете добавлять динамически группы во время выполнения.

Обратите внимание, что это ограничение в Windows Ribbon Framework, а не в библиотеке-оболочке.

Другие вопросы по тегам