在工具栏控件中使用图像列表
默认情况下,工具栏控件中的按钮使用的图像以单个位图的形式存储。 但是,还可以将按钮图像存储为一组图像列表。 工具栏控件对象最多可以使用三个单独的图像列表:
启用的图像列表包含当前启用的工具栏按钮的图像。
禁用的图像列表包含当前禁用的工具栏按钮的图像。
突出显示的图像列表包含当前突出显示的工具栏按钮的图像。 此图像列表仅在工具栏使用 TBSTYLE_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
对象关联后,框架会自动显示正确的按钮图像。