根據預設,工具列控件中按鈕所使用的影像會儲存為單一位圖。 不過,您也可以將按鈕影像儲存在一組影像清單中。 工具列控制件物件最多可以使用三個不同的影像清單:
已啟用的影像清單 包含目前啟用之工具列按鈕的影像。
已停用的影像清單包含目前停用之工具列按鈕的影像。
高亮顯示的圖片清單包含目前高亮顯示的工具列按鈕的圖片。 只有當工具列使用TBSTYLE_FLAT樣式時,才會使用此影像清單。
當您將這些影像清單與 CToolBarCtrl 對象產生關聯時,工具列控件會使用這些影像清單。 呼叫 CToolBarCtrl::SetImageList、SetDisabledImageList 和 SetHotImageList 來完成此關聯。
根據預設,MFC 會 CToolBar 使用 類別來實作 MFC 應用程式工具列。 不過, GetToolBarCtrl 成員函式可用來擷取內嵌 CToolBarCtrl 物件。 接著,您可以使用傳回的物件呼叫 CToolBarCtrl 成員函式。
下列範例示範這項技術,方法是將已啟用的 (m_ToolBarImages) 和已停用的 () 影像清單指派給 m_ToolBarDisabledImages 物件 (CToolBarCtrlm_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 對象相關聯之後,架構會自動顯示適當的按鈕影像。