Ho un pulsante di menu all'interno di CMFCToolbar
e vorrei sostituire la bitmap del pulsante ogni volta che viene selezionata una voce diversa nel menu poiché ogni voce ha la sua icona.Modifica immagine di un pulsante di menu in un CMFCToolbar
Sono riuscito a modificare l'icona utilizzando CMFCToolBarMenuButton::SetImage
ma modifica anche l'icona nella voce di menu. Peccato.
alt text http://www.freeimagehosting.net/uploads/137269b0f2.jpgalt text http://www.freeimagehosting.net/uploads/879d03843a.jpg
Ecco un esempio di codice:
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());
}
}
}
}
Tutte le idee? Grazie.
È la sequenza: 12/Il contenuto è selezionato; clicca sul menu a discesa; clicca su (X)/Nome; L'icona del contenuto ora cambia in Nome? – enriquein