gpt4 book ai didi

windows - "Correct"Windows 上的对话框/UI 字体

转载 作者:可可西里 更新时间:2023-11-01 12:48:17 26 4
gpt4 key购买 nike

当使用 CreateWindow 动态创建控件(例如编辑控件)时,它通常以丑陋(粗体无衬线)字体开始。

通常我通过抓取父对话框的字体并将其设置到控件来解决这个问题 - 我什至不能说这是不是个好主意。

我如何“合法地”获取正确的字体?

最佳答案

获取消息框等对话框中使用的字体的“正确”方法是通过 SystemParametersInfo() 函数:

// C++ example
NONCLIENTMETRICS metrics;
metrics.cbSize = sizeof(NONCLIENTMETRICS);
::SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS),
&metrics, 0);
HFONT font = ::CreateFontIndirect(&metrics.lfMessageFont);
::SendMessage(ctrlHWND, WM_SETFONT, (WPARAM)font, MAKELPARAM(TRUE, 0));

不要忘记在销毁控件时销毁字体:

::DeleteObject(font);

您可以查找 NONCLIENTMETRICS 的 MSDN 文档和 SystemParametersInfo()查看您可以检索哪些其他系统范围的参数。

关于windows - "Correct"Windows 上的对话框/UI 字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2942828/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com