Compartilhar via


Usando listas de imagens em um controle de barra de ferramentas

Por padrão, as imagens usadas pelos botões em um controle de barra de ferramentas são armazenadas como um único bitmap. No entanto, você também pode armazenar imagens de botão em um conjunto de listas de imagens. O objeto de controle da barra de ferramentas pode usar até três listas de imagens separadas:

  • Lista de imagens habilitada Contém imagens para botões da barra de ferramentas que estão habilitados no momento.

  • A lista de imagens desabilitada contém imagens para botões da barra de ferramentas que estão desabilitados no momento.

  • Lista de imagens realçada Contém imagens para botões da barra de ferramentas que estão realçados no momento. Essa lista de imagens é usada somente quando a barra de ferramentas usa o estilo TBSTYLE_FLAT.

Essas listas de imagens são usadas pelo controle da barra de ferramentas quando você as associa ao CToolBarCtrl objeto. Essa associação é realizada fazendo chamadas para CToolBarCtrl::SetImageList, SetDisabledImageList e SetHotImageList.

Por padrão, o MFC usa a CToolBar classe para implementar barras de ferramentas de aplicativo MFC. No entanto, a função de membro GetToolBarCtrl pode ser usada para recuperar o objeto CToolBarCtrl inserido. Em seguida, você pode fazer chamadas para CToolBarCtrl funções de membro usando o objeto retornado.

O exemplo a seguir demonstra essa técnica atribuindo uma lista de imagens habilitada (m_ToolBarImages) e desabilitada (m_ToolBarDisabledImages) a um CToolBarCtrl objeto (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);

Observação

As listas de imagens usadas pelo objeto da barra de ferramentas devem ser objetos permanentes. Por esse motivo, elas geralmente são membros de dados de uma classe MFC; neste exemplo, a classe de janela de quadro principal.

Depois que as listas de imagens estiverem associadas ao CToolBarCtrl objeto, a estrutura exibirá automaticamente a imagem de botão adequada.

Consulte também

Usando CToolBarCtrl
Controles