void CHScrollListBox::SetNewHExtent(LPCTSTR lpszNewString) { int iExt = GetTextLen(lpszNewString); if ( iExt > GetHorizontalExtent()) SetHorizontalExtent(iExt); }
void CBCGPRibbonCommandsListBox::DrawItem(LPDRAWITEMSTRUCT lpDIS) { CDC* pDC = CDC::FromHandle(lpDIS->hDC); ASSERT_VALID (pDC); CRect rect = lpDIS->rcItem; if (lpDIS->itemID == (UINT)-1) { return; } int cxExtent = GetHorizontalExtent(); if (cxExtent > rect.Width()) { rect.right = rect.left + cxExtent; } int cxScroll = GetScrollPos(SB_HORZ); rect.OffsetRect(-cxScroll, 0); BOOL bIsRibbonImageScale = globalData.IsRibbonImageScaleEnabled (); globalData.EnableRibbonImageScale (FALSE); pDC->SetBkMode (TRANSPARENT); BOOL bIsHighlighted = (lpDIS->itemState & ODS_SELECTED) && (lpDIS->itemState & ODS_FOCUS); BOOL bIsSelected = (lpDIS->itemState & ODS_SELECTED); CBCGPBaseRibbonElement* pCommand = (CBCGPBaseRibbonElement*) GetItemData (lpDIS->itemID); ASSERT_VALID (pCommand); CString strText; GetText (lpDIS->itemID, strText); if (bIsHighlighted) { ::FillRect (pDC->GetSafeHdc (), rect, GetSysColorBrush (COLOR_HIGHLIGHT)); pDC->SetTextColor (GetSysColor (COLOR_HIGHLIGHTTEXT)); } else if (bIsSelected) { pDC->FillRect (rect, &globalData.brBtnFace); pDC->SetTextColor (globalData.clrBtnText); } else { pDC->FillRect (rect, &globalData.brWindow); pDC->SetTextColor (globalData.clrWindowText); } BOOL bDrawDefaultIconSaved = pCommand->m_bDrawDefaultIcon; pCommand->m_bDrawDefaultIcon = m_bDrawDefaultIcon; pCommand->OnDrawOnList (pDC, strText, m_nTextOffset, rect, bIsSelected, bIsHighlighted); pCommand->m_bDrawDefaultIcon = bDrawDefaultIconSaved; globalData.EnableRibbonImageScale (bIsRibbonImageScale); }