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 la 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 la barra de herramientas puede usar hasta tres listas de imágenes independientes:

  • La lista de imágenes habilitadas contiene imágenes para los botones de la barra de herramientas que están habilitados actualmente.

  • La lista de imágenes deshabilitadas contiene imágenes para los botones de la barra de herramientas que están deshabilitados actualmente.

  • La lista de imágenes resaltadas 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 cuando las asocia con el objeto CToolBarCtrl. Esta asociación se lleva a cabo al realizar llamadas a CToolBarCtrl::SetImageList, SetDisabledImageList y SetHotImageList.

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

En el ejemplo siguiente se muestra esta técnica mediante la asignación de una lista de imágenes habilitadas (m_ToolBarImages) y deshabilitadas (m_ToolBarDisabledImages) a un objeto 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);

Nota:

Las listas de imágenes usadas por el objeto de la 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 que las listas de imágenes están asociadas al objeto CToolBarCtrl, el marco muestra automáticamente la imagen de botón adecuada.

Consulte también

Uso de CToolBarCtrl
Controles