65.9K
CodeProject 正在变化。 阅读更多。
Home

检测显示字体大小

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.56/5 (11投票s)

2002年10月26日

1分钟阅读

viewsIcon

113092

一个简单的函数,可让您在运行时以编程方式检测用户选择的字体。

引言

如你可能已经看到,最终用户可以通过控制面板的“显示”小程序(下图 1)指定他们的字体大小为“小字体”、“大字体”或“自定义字体”。由于此设置可能会对应用程序的用户界面 (UI) 产生不利影响,因此在更高级的应用程序中,了解用户选择的设置通常很有用。例如,此信息可用于确定要呈现的对话框(如果您希望为每个字体大小呈现定制的对话框)。此外,了解当前选择的字体大小可以用来向您的应用程序的最终用户发出警告,如果 UI 仅设计了较小的字体。无论您的需求如何,这个方便的小函数都将帮助您以编程方式确定所选的字体大小。

Font Size of Display Properties

图 1 - 有时,最终用户选择的字体大小可能会破坏精心设计的 UI。

检测字体大小的函数

以下代码演示了如何检测它。

CDC ScreenDC;
VERIFY(ScreenDC.CreateIC(_T("DISPLAY"), NULL, NULL, NULL));
const int nLogDPIX = ScreenDC.GetDeviceCaps(LOGPIXELSX),
          nLogDPIY = ScreenDC.GetDeviceCaps(LOGPIXELSY);

if (nLogDPIX == 96 && nLogDPIY == 96)
{
    // 96 DPI, Small Fonts
}
else
{
    if (nLogDPIX == 120 && nLogDPIY == 120)
    {
        // 120 DPI, Large Fonts
    }
    else
    {
        // Otherwise, Custom Font Size
    }
}

许可证

本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。

作者可能使用的许可证列表可以在此处找到。

© . All rights reserved.