J'ai un bouton de menu à l'intérieur d'un CMFCToolbar
et je voudrais remplacer l'image bitmap du bouton chaque fois qu'une entrée différente est sélectionnée dans le menu car chaque entrée a sa propre icône.Changement de l'image d'un bouton de menu dans une barre CMFCT
Je réussis à changer l'icône en utilisant CMFCToolBarMenuButton::SetImage
mais cela change aussi l'icône dans l'entrée de menu. Dommage.
alt text http://www.freeimagehosting.net/uploads/137269b0f2.jpgalt text http://www.freeimagehosting.net/uploads/879d03843a.jpg
Voici un exemple de code:
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());
}
}
}
}
Toutes les idées? Je vous remercie.
La séquence est-elle: 12/Le contenu est sélectionné; cliquez sur la liste déroulante; cliquez sur (X)/Nom; L'icône du contenu change maintenant en Nom? – enriquein