void CElcNonWndButton::Draw(PVOID pvGraphics) { if (!pvGraphics) return; Rect rect(m_rect.left, m_rect.top, m_rect.Width(), m_rect.Height()); // draw background image if (m_background.background.pImage) { thePainter.DrawImage(pvGraphics, &m_background.background, &rect, m_state, 1, NULL); } // draw icon if (m_icon.pImage) { thePainter.DrawImage(pvGraphics, &m_icon, &rect, m_state, 1, NULL); } if (!m_strText.IsEmpty()) { LOGFONT lf = {0}; m_ftText.GetLogFont(&lf); FontFamily family(lf.lfFaceName); Font ftText(&family, 9); StringFormat stringfmt; stringfmt.SetAlignment(StringAlignmentCenter); stringfmt.SetLineAlignment(StringAlignmentCenter); stringfmt.SetHotkeyPrefix(HotkeyPrefixHide); Color crText; crText.SetFromCOLORREF(m_background.crTextNormal); RectF rcText; rcText.X = (REAL)m_rect.left; rcText.Y = (REAL)m_rect.top + 4; rcText.Width = (REAL)m_rect.Width(); rcText.Height = (REAL)m_rect.Height(); ((Graphics *)pvGraphics)->DrawString(m_strText, -1, &ftText, rcText, &stringfmt, &SolidBrush(crText)); } }