你如何(通过编程)知道Windows 7电脑上是否使用了大字体?
How can you tell (programmatically) if large fonts are in use on a Windows 7 PC
我需要从c++编写的应用程序中确定是否在Windows 7上使用大字体。如有任何帮助,不胜感激。
In MFC:
void CTestFontDlg::OnBnClickedButton1()
{
CDC* pDC = GetDC();
int nRes = GetDeviceCaps(*pDC, LOGPIXELSY);
}
正常字体大小= 96(100%)、中等(125%)= 120…
Windows显示设置(控制面板外观和个性化显示)影响当前每英寸点数(DPI)。实际上,有一种方法可以根据MSDN使用GetDeviceCaps()
:
HDC hdc = ::GetDC(NULL);
int dpiX = ::GetDeviceCaps(hdc, LOGPIXELSX);
int dpiY = ::GetDeviceCaps(hdc, LOGPIXELSY);
::ReleaseDC(NULL, hdc);
这将给你以像素为单位的DPI。如果你想要实际的比例因子(例如150%),除以96。96是基线DPI,所以它被认为是"100%"。您可以使用MulDiv(),以便在需要时正确地将结果舍入整数除法。
int scaleFactorX = ::MulDiv(dpiX, 100, 96);
int scaleFactorY = ::MulDiv(dpiY, 100, 96);
相关文章:
- 在提升multi_index容器中,是否定义了"default index"?
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 检查输入是否不是整数或数字
- 是否可以初始化不可复制类型的成员变量(或基类)
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 此代码是否违反一个定义规则
- 是否需要删除包含对象的"pair"?
- 是否可以从int转换为enum类类型
- 无论条件是否为true,if总是在c++中执行
- 如何找到大小'x'数组是否完全填充,在C++?
- 检查值是否在集合p1和p2中,但不在p3中
- 查看电脑是否连接到指定网络的编程方式
- 如何知道电脑是否处于游戏模式
- 我的 265GB RAM 笔记本电脑上的内存是否超过 8GB
- 如何通过编程检测电脑是否具有USB3功能
- 是否可以生成一个不可破坏的硬件ID或一个很难伪造的硬件ID?(即购买新的电脑部件?)
- 我如何用程序检查我的电脑是否在代理后面
- 你如何(通过编程)知道Windows 7电脑上是否使用了大字体?
- 是否可以在 Windows C++ 中以编程方式检查我的笔记本电脑是通过 Wi-Fi 还是通过"wired LAN"连接的?