Usando listas de imagens em um controle da barra de ferramentas
Por padrão, as imagens usadas pelos botões em um controle da barra de ferramentas são armazenadas como um único bitmap. No entanto, você também pode armazenar imagens no botão em um conjunto de listas da imagem. O objeto control da barra de ferramentas pode usar até três listas separadas de imagem:
A lista habilitado da imagem contém imagens para os botões da barra de ferramentas que estão habilitados no momento.
Desabilitado na imagem à lista contêm imagens para os botões da barra de ferramentas que estão desabilitados no momento.
A lista realçado de imagem contém imagens para os botões da barra de ferramentas que são realçados no momento. Esta lista de imagem é usada apenas quando a barra de ferramentas usa o estilo de TBSTYLE_FLAT .
Essas listas de imagem são usadas pelo controle da barra de ferramentas quando você o associa ao objeto de CToolBarCtrl . Essa associação é feita fazer chamadas a CToolBarCtrl::SetImageList, a SetDisabledImageList, e a SetHotImageList.
Por padrão, o MFC usa a classe de CToolBar para implementar barras de ferramentas do aplicativo MFC. Entretanto, a função de membro de GetToolBarCtrl pode ser usada para recuperar o objeto inserido de CToolBarCtrl . Você pode fazer chamadas às funções de membro de CToolBarCtrl usando o objeto retornado.
O exemplo a seguir demonstra esta técnica atribuindo uma listam_ToolBarImageshabilitado () e desabilitada de imagem (dem_ToolBarDisabledImages) a um objeto de 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);
Dica
As listas de imagem usadas pelo objeto da barra de ferramentas devem ser objetos permanentes.Por esse motivo, geralmente são membros de dados de uma classe de MFC; neste exemplo, a classe da janela principal do quadro.
As listas de imagem são associadas uma vez com o objeto de CToolBarCtrl , a estrutura são exibidos automaticamente a imagem adequada do botão.