Partilhar 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 ativada Contém imagens para botões da barra de ferramentas que estão habilitados no momento.

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

  • Lista de imagens realçadas Contém imagens para botões da barra de ferramentas que estão realçados no momento. Esta 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, MFC usa a CToolBar classe para implementar barras de ferramentas de aplicativo MFC. No entanto, a GetToolBarCtrl função de membro pode ser usada para recuperar o objeto incorporado CToolBarCtrl . 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, eles geralmente são membros de dados de uma classe MFC; Neste exemplo, a classe Main Frame Window.

Uma vez que as listas de imagens são associadas ao CToolBarCtrl objeto, a estrutura exibe automaticamente a imagem do botão adequado.

Ver também

Usando CToolBarCtrl
Controlos