CMFCRibbonColorComboBox为所选项目设置背景色

CMFCRibbonColorComboBox为所选项目设置背景色,mfc,ribbon-control,Mfc,Ribbon Control,如何从CMFCRibbonComboBox派生我的类CMFCRibbonColorComboBox 那你是不是想推翻我的计划 如何在选择后为所选项目设置背景色 BOOL CMFCRibbonColorComboBox::OnDrawDropListItem(CDC* pDC, int nIndex, CMFCToolBarMenuButton* pItem, BOOL bHighlight) { ASSERT_VALID(this); CRect rc = pItem->R

如何从CMFCRibbonComboBox派生我的类CMFCRibbonColorComboBox 那你是不是想推翻我的计划

如何在选择后为所选项目设置背景色

BOOL CMFCRibbonColorComboBox::OnDrawDropListItem(CDC* pDC, int nIndex, CMFCToolBarMenuButton* pItem, BOOL bHighlight)
{
    ASSERT_VALID(this);
    CRect rc = pItem->Rect();
    LPCTSTR lpszText = GetItem(nIndex);
    if (lpszText == NULL)
    {
        return FALSE;
    }
    CString strText = lpszText;
    pDC->DrawText(strText, rc, DT_SINGLELINE | DT_VCENTER);
    return TRUE;
}

CMFCRIBBONCOMBOX类是从CMFCRibbonEdit派生的,CMFCRibbonEdit是从CMFCRibbonButton派生的。据我所知,您需要覆盖virtual COLORREF CMFCRibbonButton::OnFillBackgroundCDC*pDC

未调用OnFillBackground。你能试试吗?我有时间会调查的。试着在OnDraw中设置断点,看看它一步一步地做什么。