Использование списков изображений в элементе управления панели инструментов
По умолчанию изображения, используемые кнопками в элементе управления панелью инструментов, хранятся в виде одной растровой карты. Однако вы также можете хранить изображения кнопок в наборе списков изображений. Объект элемента управления панели инструментов может использовать до трех отдельных списков изображений:
Список включенных изображений содержит изображения для кнопок панели инструментов, которые сейчас включены.
Список отключенных изображений содержит изображения для кнопок панели инструментов, которые в настоящее время отключены.
Выделенный список изображений содержит изображения для кнопок панели инструментов, выделенных в данный момент. Этот список изображений используется только в том случае, если панель инструментов использует стиль ТБSTYLE_FLAT.
Эти списки изображений используются элементом управления панели инструментов при связывании CToolBarCtrl
их с объектом. Эта связь осуществляется путем вызова CToolBarCtrl::SetImageList, SetDisabledImageList и SetHotImageList.
По умолчанию MFC использует CToolBar
класс для реализации панелей инструментов приложений MFC. GetToolBarCtrl
Однако функцию-член можно использовать для извлечения внедренного CToolBarCtrl
объекта. Затем можно вызывать CToolBarCtrl
функции-члены с помощью возвращаемого объекта.
В следующем примере демонстрируется этот метод, назначив включенный (m_ToolBarImages
) и отключенныйm_ToolBarDisabledImages
() список изображений объекту CToolBarCtrl
(m_ToolBarCtrl
).
CWinApp* pApp = AfxGetApp();
m_ToolBarImages.Create(16, 16, ILC_COLOR, 4, 4);
m_ToolBarImages.Add(pApp->LoadIcon(IDI_BLK));
m_ToolBarImages.Add(pApp->LoadIcon(IDI_RED));
m_ToolBarImages.Add(pApp->LoadIcon(IDI_YELL));
m_ToolBarImages.Add(pApp->LoadIcon(IDI_WHI));
m_ToolBarDisabledImages.Create(16, 16, ILC_COLOR, 4, 4);
m_ToolBarDisabledImages.Add(pApp->LoadIcon(IDI_DIS_BLK));
m_ToolBarDisabledImages.Add(pApp->LoadIcon(IDI_DIS_RED));
m_ToolBarDisabledImages.Add(pApp->LoadIcon(IDI_DIS_YELL));
m_ToolBarDisabledImages.Add(pApp->LoadIcon(IDI_DIS_WHI));
m_ToolBarCtrl.SetImageList(&m_ToolBarImages);
m_ToolBarCtrl.SetDisabledImageList(&m_ToolBarDisabledImages);
Примечание.
Списки изображений, используемые объектом панели инструментов, должны быть постоянными объектами. По этой причине они обычно являются членами класса MFC; в этом примере класс главного окна фрейма.
После того как списки изображений связаны с CToolBarCtrl
объектом, платформа автоматически отображает правильное изображение кнопки.