返回> 网站首页 

枚举当前程序窗口实现统一字体

yoours2011-06-22 15:56:27 阅读 1160

简介一边听听音乐,一边写写文章。

// 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);

对于自绘控件需要有字体操作才能实现,以及菜单不能实现

微信小程序扫码登陆

文章评论

1160人参与,0条评论