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