Tengo un botón de menú dentro de CMFCToolbar
y me gustaría reemplazar el mapa de bits del botón cada vez que se selecciona una entrada diferente en el menú, ya que cada entrada tiene su propio icono.Cambiar la imagen de un botón de menú en CMFCToolbar
Logré cambiar el ícono usando CMFCToolBarMenuButton::SetImage
pero también cambia el ícono en la entrada del menú. Demasiado.
alt text http://www.freeimagehosting.net/uploads/137269b0f2.jpgalt text http://www.freeimagehosting.net/uploads/879d03843a.jpg
Este es un ejemplo de código:
if ((pToolbar != NULL) && (idBase != 0))
{
int ixButtonToReplace = pToolbar->CommandToIndex(idBase);
CMFCToolBarMenuButton* pBtnToReplace = dynamic_cast<CMFCToolBarMenuButton*>
(pToolbar->GetButton(ixButtonToReplace));
if (pBtnToReplace)
{
const CObList& listCommands = pBtnToReplace->GetCommands();
POSITION pos = listCommands.GetHeadPosition();
while (pos != NULL)
{
CMFCToolBarMenuButton* pItem = (CMFCToolBarMenuButton*) listCommands.GetNext(pos);
if (pItem && (pItem->m_nID == idButtonToReplaceWith))
{
pBtnToReplace->SetImage(pItem->GetImage());
}
}
}
}
¿Alguna idea? Gracias.
Es la secuencia: 12/Contenido seleccionado; haga clic en menú desplegable; haga clic en (X)/Nombre; El ícono del contenido ahora cambia a Nombre? – enriquein