在工具栏控件中使用图像列表

默认情况下,工具栏控件中的按钮使用的图像以单个位图的形式存储。 但是,还可以将按钮图像存储为一组图像列表。 工具栏控件对象最多可以使用三个单独的图像列表:

  • 启用的图像列表包含当前启用的工具栏按钮的图像。

  • 禁用的图像列表包含当前禁用的工具栏按钮的图像。

  • 突出显示的图像列表包含当前突出显示的工具栏按钮的图像。 此图像列表仅在工具栏使用 TBSTYLE_FLAT 样式时使用。

将图像列表与 CToolBarCtrl 对象相关联时,工具栏控件会使用这些图像列表。 这种关联通过调用 CToolBarCtrl::SetImageListSetDisabledImageListSetHotImageList 来完成。

默认情况下,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 对象关联后,框架会自动显示正确的按钮图像。

另请参阅

使用 CToolBarCtrl
控件