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

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

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

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

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

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

默认情况下,MFC 使用 CToolBar 类实现 MFC 应用程序工具栏。 但是, GetToolBarCtrl 成员函数可用于检索嵌入 CToolBarCtrl 的对象。 然后,可以使用返回的对象调用 CToolBarCtrl 成员函数。

以下示例通过向对象m_ToolBarCtrl()分配已启用的(m_ToolBarImages)和禁用的(m_ToolBarDisabledImages)图像列表CToolBarCtrl来演示此技术。

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
控件