void CPropPageFrameDefault::DrawCaption(CDC *pDc, CRect rect, LPCTSTR lpszCaption, HICON hIcon) { COLORREF clrLeft = GetSysColor(COLOR_INACTIVECAPTION); COLORREF clrRight = pDc->GetPixel(rect.right-1, rect.top); FillGradientRectH(pDc, rect, clrLeft, clrRight); // draw icon if (hIcon && m_Images.GetSafeHandle() && m_Images.GetImageCount() == 1) { IMAGEINFO ii; m_Images.GetImageInfo(0, &ii); CPoint pt(6, rect.CenterPoint().y - (ii.rcImage.bottom-ii.rcImage.top)/2); m_Images.Draw(pDc, 0, pt, ILD_TRANSPARENT); rect.left+= (ii.rcImage.right-ii.rcImage.left) + 6; } // draw text rect.left+= 2; COLORREF clrPrev = pDc->SetTextColor(GetSysColor(COLOR_CAPTIONTEXT)); int nBkStyle = pDc->SetBkMode(TRANSPARENT); CFont *pFont = (CFont*)pDc->SelectStockObject(SYSTEM_FONT); //pDc->DrawText(lpszCaption, rect, DT_LEFT|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS); TextOutTryFL(pDc->GetSafeHdc(), rect.left, rect.top, lpszCaption, (int)_tcslen(lpszCaption)); pDc->SetTextColor(clrPrev); pDc->SetBkMode(nBkStyle); pDc->SelectObject(pFont); }
void CPropPageFrameDefault::DrawCaption(CDC *pDc, CRect rect, LPCTSTR lpszCaption, HICON hIcon) { COLORREF clrLeft = GetSysColor(COLOR_INACTIVECAPTION); COLORREF clrRight; HTHEME hTheme = NULL; if (g_ThemeLib.IsAvailable() && g_ThemeLib.IsThemeActive()) { hTheme = g_ThemeLib.OpenThemeData(m_hWnd, L"Tab"); } if (hTheme) { clrRight = GetSysColor(COLOR_BTNHIGHLIGHT); } else { clrRight = GetSysColor(COLOR_BTNFACE); } FillGradientRectH(pDc, rect, clrLeft, clrRight); // draw icon if (hIcon && m_Images.GetSafeHandle() && m_Images.GetImageCount() == 1) { IMAGEINFO ii; m_Images.GetImageInfo(0, &ii); CPoint pt(3, rect.CenterPoint().y - (ii.rcImage.bottom-ii.rcImage.top)/2); m_Images.Draw(pDc, 0, pt, ILD_TRANSPARENT); rect.left+= (ii.rcImage.right-ii.rcImage.left) + 3; } // draw text rect.left+= 2; COLORREF clrPrev = pDc->SetTextColor(GetSysColor(COLOR_CAPTIONTEXT)); int nBkStyle = pDc->SetBkMode(TRANSPARENT); CFont *pFont = (CFont*)pDc->SelectStockObject(SYSTEM_FONT); pDc->DrawText(lpszCaption, rect, DT_LEFT|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS); pDc->SetTextColor(clrPrev); pDc->SetBkMode(nBkStyle); pDc->SelectObject(pFont); }
void CPropPageFrameDefault::DrawCaption(CDC *pDc, CRect rect, LPCTSTR lpszCaption, HICON hIcon) { // <MPC-BE Custom Code> COLORREF clrLeft = GetSysColor(COLOR_ACTIVECAPTION); // </MPC-BE Custom Code> COLORREF clrRight = pDc->GetPixel(rect.right-1, rect.top); FillGradientRectH(pDc, rect, clrLeft, clrRight); // draw icon if (hIcon && m_Images.GetSafeHandle() && m_Images.GetImageCount() == 1) { IMAGEINFO ii; m_Images.GetImageInfo(0, &ii); CPoint pt(3, rect.CenterPoint().y - (ii.rcImage.bottom-ii.rcImage.top)/2); m_Images.Draw(pDc, 0, pt, ILD_TRANSPARENT); rect.left+= (ii.rcImage.right-ii.rcImage.left) + 3; } // draw text rect.left+= 2; COLORREF clrPrev = pDc->SetTextColor(GetSysColor(COLOR_CAPTIONTEXT)); int nBkStyle = pDc->SetBkMode(TRANSPARENT); CFont *pFont = (CFont*)pDc->SelectStockObject(SYSTEM_FONT); CFont* pSysFont = pDc->GetCurrentFont(); LOGFONT lf; pSysFont->GetLogFont(&lf); lf.lfHeight = rect.Height(); lf.lfWidth = 0; // <MPC-BE Custom Code> CString face = IsWinVistaOrLater() ? _T("Segoe UI") : _T("Arial"); _tcscpy_s(lf.lfFaceName, face); // <MPC-BE Custom Code> CFont f; f.CreateFontIndirect(&lf); pDc->SelectObject(&f); pDc->DrawText(lpszCaption, rect, DT_LEFT|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS); pDc->SetTextColor(clrPrev); pDc->SetBkMode(nBkStyle); pDc->SelectObject(pFont); }
void CPropPageFrameDefault::DrawCaption(CDC *pDc, CRect rect, LPCTSTR lpszCaption, HICON hIcon) { COLORREF clrLeft = GetSysColor(COLOR_ACTIVECAPTION); COLORREF clrRight; if (!g_bLowColorDesktop) { if (g_xpStyle.IsThemeActive() && g_xpStyle.IsAppThemed()) clrRight = pDc->GetPixel(rect.right-1, rect.top); // not very smart, but for XP styles, we need the 'real' background color else clrRight = GetSysColor(COLOR_3DFACE); } else clrRight = clrLeft; FillGradientRectH(pDc, rect, clrLeft, clrRight); // draw icon if (hIcon && m_Images.GetSafeHandle() && m_Images.GetImageCount() == 1) { IMAGEINFO ii; m_Images.GetImageInfo(0, &ii); CPoint pt(rect.left + 3, rect.CenterPoint().y - (ii.rcImage.bottom-ii.rcImage.top)/2); m_Images.Draw(pDc, 0, pt, ILD_NORMAL); rect.left+= (ii.rcImage.right-ii.rcImage.left) + 3; } // draw text rect.left+= 2; COLORREF clrPrev = pDc->SetTextColor(GetSysColor(COLOR_CAPTIONTEXT)); int nBkStyle = pDc->SetBkMode(TRANSPARENT); CFont *pFont = (CFont*)pDc->SelectObject(&theApp.m_fontDefaultBold); pDc->DrawText(lpszCaption, rect, DT_LEFT | DT_VCENTER | DT_SINGLELINE | DT_END_ELLIPSIS); pDc->SetTextColor(clrPrev); pDc->SetBkMode(nBkStyle); pDc->SelectObject(pFont); }