Usando listas de imagem em um controle barra de ferramentas
Por padrão, as imagens usadas pelos botões em um controle 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 imagem.O objeto de controle de barra de ferramentas pode usar até três listas de imagem separada:
Ativado imagem imagens de contém lista de botões de barra de ferramentas que estão atualmente habilitados.
Desativado imagem imagens de contém lista de botões de barra de ferramentas estão desabilitadas.
Realçado imagem imagens de contém lista de botões de barra de ferramentas que atualmente são realçadas.Esta lista de imagem é usada somente quando a barra de ferramentas usa o TBSTYLE_FLAT estilo.
Essas listas de imagem são usadas pelo controle de barra de ferramentas quando associá-las com o CToolBarCtrl objeto.Essa associação é realizada por meio de chamadas para CToolBarCtrl::SetImageList, SetDisabledImageList, e SetHotImageList.
Por padrão, o MFC usa o CToolBar classe para implementar as barras de ferramentas de aplicativo MFC.No entanto, o GetToolBarCtrl função de membro pode ser usada para recuperar o incorporado CToolBarCtrl objeto.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 um habilitado (m_ToolBarImages) e desativado (m_ToolBarDisabledImages) lista de imagens para 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 imagem usadas pelo objeto de barra de ferramentas devem ser objetos permanentes.Por esse motivo, normalmente são membros de dados de uma classe do MFC; Neste exemplo, a classe de janela do quadro principal. |
Depois que as listas de imagem são associadas a CToolBarCtrl de objeto, a estrutura exibe automaticamente a imagem do botão adequado.