返回> 网站首页
枚举当前程序窗口实现统一字体
yoours2011-06-22 15:56:27
简介一边听听音乐,一边写写文章。
// lParam is a pointer to CFont object
BOOL __stdcall SetChildFont(HWND hwnd, LPARAM lparam)
{
CFont *pFont = (CFont*)lparam;
CWnd *pWnd = CWnd::FromHandle(hwnd);
pWnd->SetFont(pFont);
return TRUE;
}
LOGFONT lf;
GetFont()->GetObject(sizeof(lf), &lf);
HDC hDC = ::GetDC(HWND_DESKTOP);
lf.lfHeight = -MulDiv(11, GetDeviceCaps(hDC, LOGPIXELSY), 72);//11号字体
::ReleaseDC(HWND_DESKTOP, hDC);
m_font.CreateFontIndirect(&lf);
// 枚举当前程序的所有窗体,包括控件
::EnumChildWindows(m_hWnd, ::SetChildFont, (LPARAM)&m_font);
对于自绘控件需要有字体操作才能实现,以及菜单不能实现
文章评论
1386人参与,0条评论