У меня есть кнопка меню внутри a CMFCToolbar
и я хотел бы заменить битовый массив кнопки каждый раз, когда другая запись выбрана в меню, поскольку каждая запись имеет свой собственный значок.
Я преуспеваю в том, чтобы изменить использование значка CMFCToolBarMenuButton::SetImage
но это изменяет значок в записи меню также.Очень плохо.
сопроводительный текст http://www.freeimagehosting.net/uploads/137269b0f2.jpg сопроводительный текст http://www.freeimagehosting.net/uploads/879d03843a.jpg
Вот образец кода:
if ( (pToolbar != NULL) && (idBase != 0) )
{
int ixButtonToReplace = pToolbar->CommandToIndex(idBase);
CMFCToolBarMenuButton* pBtnToReplace = dynamic_cast
(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());
}
}
}
}
Какие-либо идеи?Спасибо.