CSize CChartAxis::GetLargestTick(CDC* pDC) { CFont NewFont; NewFont.CreatePointFont(m_nFontSize,m_strFontName.c_str(),pDC); CFont* pOldFont = pDC->SelectObject(&NewFont); CSize MaxSize(0,0); if (m_MaxValue == m_MinValue) { TChartString strLabel = GetTickLabel(m_MinValue); MaxSize = pDC->GetTextExtent(strLabel.c_str(),strLabel.size()); } else { double TickValue = GetFirstTickValue(); do { if (IsLabelOnAxis(TickValue)) { TChartString strLabel = GetTickLabel(TickValue); CSize TextSize = pDC->GetTextExtent(strLabel.c_str(),strLabel.size()); if (TextSize.cy > MaxSize.cy) MaxSize.cy = TextSize.cy; if (TextSize.cx > MaxSize.cx) MaxSize.cx = TextSize.cx; } } while (GetNextTickValue(TickValue, TickValue)); } pDC->SelectObject(pOldFont); NewFont.DeleteObject(); return MaxSize; }