//******************************************************************************** void CBCGPRibbonButtonsGroup::OnDraw (CDC* pDC) { ASSERT_VALID (this); ASSERT_VALID (pDC); if (m_rect.IsRectEmpty ()) { return; } //----------------------- // Fill group background: //----------------------- COLORREF clrText = CBCGPVisualManager::GetInstance ()->OnDrawRibbonButtonsGroup ( pDC, this, m_rect); COLORREF clrTextOld = (COLORREF)-1; if (clrText != (COLORREF)-1) { clrTextOld = pDC->SetTextColor (clrText); } for (int i = 0; i < m_arButtons.GetSize (); i++) { CBCGPBaseRibbonElement* pButton = m_arButtons [i]; ASSERT_VALID (pButton); if (pButton->m_rect.IsRectEmpty ()) { continue; } CString strText = pButton->m_strText; BOOL bIsDisabled = pButton->IsDisabled(); if ((IsQAT() || m_bIsRibbonTabElements) && pButton->m_pRibbonBar != NULL && pButton->m_pRibbonBar->IsBackstageViewActive()) { pButton->m_bIsDisabled = TRUE; } if (pButton->GetImageSize (CBCGPBaseRibbonElement::RibbonImageSmall) != CSize (0, 0)) { pButton->m_strText.Empty (); } pButton->OnDraw (pDC); pButton->m_strText = strText; pButton->m_bIsDisabled = bIsDisabled; } if (clrTextOld != (COLORREF)-1) { pDC->SetTextColor (clrTextOld); } }