程序中的字体用窗体默认提供的在不同Windows下面,显示的不一样.
e.g.
Win7X64下, Tab页题头字体是斜体,虽然不协调,还能看. 如果不设置成斜体, 看起来 又太大
WinXpX86下, 如果是斜体, Tab页题头字体太小了,根本看不到, 看起来像"--"这样的符号.
// Create fonts for tab labels
void TTabWnd::createFont()
{
NONCLIENTMETRICS metrics;
::ZeroMemory(&metrics, sizeof(NONCLIENTMETRICS));
metrics.cbSize = sizeof(NONCLIENTMETRICS);
::SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, &metrics, 0);
_tcscpy(metrics.lfStatusFont.lfFaceName, G_FONT_UI);
/// 如果不设置, 字体太大很不和谐
metrics.lfStatusFont.lfHeight = 12;
/// 必须为FALSE, Xp下显示不出来字体
metrics.lfStatusFont.lfItalic = FALSE;
m_Font.DeleteObject();
m_Font.CreateFontIndirect(&metrics.lfStatusFont);
}
修改后, Tab页题头字体在Win7X64和WinXpX86下,都不会显得很突兀.