Изменение изображения кнопки меню в CMFCToolbar

У меня есть кнопка меню внутри 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());
            }
        }
    }
}

Какие-либо идеи?Спасибо.

10
задан Bill the Lizard 18 May 2011 в 15:34
поделиться