我需要在使用C ++编写的应用程序中识别Windows 7中是否使用大字体。任何帮助将不胜感激。
答案 0 :(得分:2)
在MFC中:
void CTestFontDlg::OnBnClickedButton1()
{
CDC* pDC = GetDC();
int nRes = GetDeviceCaps(*pDC, LOGPIXELSY);
}
正常字体大小= 96(100%),中等(125%)= 120 ...
答案 1 :(得分:0)
Windows显示设置(控制面板\外观和个性化\显示)会影响当前每英寸点数(DPI)。事实上,有一种方法可以使用according to MSDN获取DPI信息GetDeviceCaps()
:
HDC hdc = ::GetDC(NULL);
int dpiX = ::GetDeviceCaps(hdc, LOGPIXELSX);
int dpiY = ::GetDeviceCaps(hdc, LOGPIXELSY);
::ReleaseDC(NULL, hdc);
这将为您提供DPI(以像素为单位)。如果你想要实际比例因子(g.e. 150%),除以96. 96是基线DPI,所以它被认为是“100%”。您可以使用MulDiv(),以便整数除法在需要时正确舍入结果。
int scaleFactorX = ::MulDiv(dpiX, 100, 96);
int scaleFactorY = ::MulDiv(dpiY, 100, 96);