Używanie list obrazów w formancie paska narzędzi
Domyślnie obrazy używane przez przyciski w kontrolce paska narzędzi są przechowywane jako pojedyncza mapa bitowa. Można jednak również przechowywać obrazy przycisków w zestawie list obrazów. Obiekt kontrolki paska narzędzi może używać maksymalnie trzech oddzielnych list obrazów:
Włączona lista obrazów zawiera obrazy dla przycisków paska narzędzi, które są obecnie włączone.
Wyłączona lista obrazów Zawiera obrazy dla przycisków paska narzędzi, które są obecnie wyłączone.
Wyróżniona lista obrazów zawiera obrazy przycisków paska narzędzi, które są obecnie wyróżnione. Ta lista obrazów jest używana tylko wtedy, gdy pasek narzędzi używa stylu TBSTYLE_FLAT.
Te listy obrazów są używane przez kontrolkę paska narzędzi podczas ich kojarzenia z obiektem CToolBarCtrl
. To skojarzenie jest realizowane przez wykonywanie wywołań do CToolBarCtrl::SetImageList, SetDisabledImageList i SetHotImageList.
Domyślnie MFC używa CToolBar
klasy do implementowania pasków narzędzi aplikacji MFC. Jednak funkcja składowa GetToolBarCtrl
może służyć do pobierania obiektu osadzonego CToolBarCtrl
. Następnie można wykonywać wywołania funkcji CToolBarCtrl
składowych przy użyciu zwróconego obiektu.
W poniższym przykładzie pokazano tę technikę, przypisując do obiektu listę obrazów z włączoną obsługą (m_ToolBarImages
) i wyłączoną CToolBarCtrl
(m_ToolBarDisabledImages
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);
Uwaga
Listy obrazów używane przez obiekt paska narzędzi muszą być obiektami trwałymi. Z tego powodu są to często składowe danych klasy MFC; w tym przykładzie główna klasa okien ramowych.
Po skojarzeniu list obrazów z obiektem CToolBarCtrl
platforma automatycznie wyświetla odpowiedni obraz przycisku.