Compartir vía


Usar listas de imágenes en un control de barra de herramientas

De forma predeterminada, las imágenes usadas por los botones de un control de barra de herramientas se almacenan como un solo mapa de bits. Sin embargo, también puede almacenar imágenes de botón en un conjunto de listas de imágenes. El objeto de control de barra de herramientas puede usar hasta tres listas de imágenes independientes:

  • Lista de imágenes habilitada Contiene imágenes para botones de barra de herramientas que están habilitados actualmente.

  • Lista de imágenes deshabilitadas Contiene imágenes para los botones de la barra de herramientas que están deshabilitados actualmente.

  • Lista de imágenes resaltada Contiene imágenes para los botones de la barra de herramientas que están resaltados actualmente. Esta lista de imágenes solo se usa cuando la barra de herramientas usa el estilo TBSTYLE_FLAT.

El control de la barra de herramientas usa estas listas de imágenes al asociarlas al CToolBarCtrl objeto . Esta asociación se realiza realizando llamadas a CToolBarCtrl::SetImageList, SetDisabledImageList y SetHotImageList.

De forma predeterminada, MFC usa la CToolBar clase para implementar barras de herramientas de aplicaciones de MFC. Sin embargo, la GetToolBarCtrl función miembro se puede usar para recuperar el objeto incrustado CToolBarCtrl . A continuación, puede realizar llamadas a funciones miembro de CToolBarCtrl con el objeto devuelto.

En el ejemplo siguiente se muestra esta técnica asignando una lista de imágenes habilitada (m_ToolBarImages) y deshabilitada (m_ToolBarDisabledImages) a un 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);

Nota:

Las listas de imágenes usadas por el objeto de barra de herramientas deben ser objetos permanentes. Por este motivo, suelen ser miembros de datos de una clase MFC; en este ejemplo, la clase de ventana de marco principal.

Una vez asociadas las listas de imágenes con el CToolBarCtrl objeto , el marco muestra automáticamente la imagen de botón adecuada.

Consulte también

Uso de CToolBarCtrl
Mandos