#visual-c #mfc #cmfctoolbar
#visual-c #mfc #cmfctoolbar
Вопрос:
Я хочу добавить все menu items
в toolbar
, но по умолчанию отображается только их подмножество (без необходимости настройки пользователем). Таким образом, все пункты меню будут иметь значки рядом с ними, но панель инструментов не будет содержать редко используемые элементы, если их не добавят пользователи.
Если возможно, как это делается с CMFCToolBar
?
Ответ №1:
Если возможно, как это делается с помощью CMFCToolBar?
Вы можете определить любое количество «фиктивных» ресурсов панели инструментов в скрипте ресурсов вашей программы, как в примере ниже, где ID_DUMMY1
идентификатор ресурса панели инструментов / растрового изображения (должен быть доступен как для компилятора ресурсов , так и для компилятора C ), а три ID_COMMAND_x
идентификатора определяют команды меню, которым соответствуют изображения:
ID_DUMMY1 BITMAP L"DummyToolbar.bmp" // 16 x 48 bitmap for three 'buttons
ID_DUMMY1 TOOLBAR 16, 16
{
BUTTON ID_COMMAND_A // Three commands corresponding to the three button
BUTTON ID_COMMAND_B // images in the above bitmap
BUTTON ID_COMMAND_C
}
Затем в вашей программе (обычно, сразу после инициализации основного окна фрейма) вы можете вызвать статический член CMFCToolBar
класса AddToolBarForImageCollection
для загрузки изображений с этих фиктивных панелей инструментов. Следующее загрузит эти изображения в указанный выше ресурс:
CMFCToolBar::AddToolBarForImageCollection(ID_DUMMY1, ID_DUMMY1);
После этого каждый пункт меню с заданными командами будет отображать соответствующее изображение, как определено в фиктивных ресурсах панели инструментов. У вас может быть столько таких ресурсов панели инструментов, сколько требуется, и просто вызывайте AddToolBarForImageCollection
для каждого из них.
Примечание: Хотя я использовал один и тот же идентификатор ресурса как для инструментов панели инструментов, так и для растровых ресурсов, вы также можете использовать разные идентификаторы. До тех пор, пока аргументы, указанные в вызове AddToolBarForImageCollection
, должным образом согласованы, метод все равно будет работать.
Комментарии:
1. Это здорово, но я не видел способа добавить также большие значки. Есть ли версия Ex, которая включает их?