系统默认对话框字体?

发布于 2024-12-01 18:49:18 字数 633 浏览 5 评论 0 原文

Windows 中的默认对话框字体是 MS Shell Dlg。

我不喜欢它,因为它不正确。

手动更改单个对话框项的字体很容易,但是如何使用“正确”的系统字体(来自 lfMessageFont) 应用于所有其控件调用 非手动) rel="nofollow noreferrer">DialogBox (或使用 ATL/WTL)?

注意:

我多次说过“不是手动”的原因是我寻找一个比使用 EnumChildWindows (或类似的)循环遍历所有内容更好的解决方案。有吗?

The default dialog box font in Windows is MS Shell Dlg.

I don't like it, because it's not correct.

It's easy to manually change the font of a single dialog item, but how do I display a dialog box with the "correct" system font (from lfMessageFont) applied to all of its controls by default (not manually) when calling DialogBox (or using ATL/WTL)?

Note:

The reason I've said "not manually" so many times is that I am looking for a solution better than looping through everything with EnumChildWindows (or the like). Does one exist?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

终陌 2024-12-08 18:49:18

来自关于对话框

不同版本的 Windows 之间的系统字体可能有所不同。到
让您的应用程序使用系统字体,无论它是哪个系统
运行时,使用 DS_SHELLFONT 和 MS Shell Dlg 字体,并使用
DIALOGEX 资源而不是 DIALOG 资源。系统地图
这样您的对话框将使用 Tahoma 字体。笔记
如果字体不是 MS Shell Dlg,则 DS_SHELLFONT 无效。

我想这就是你想要的。如果这不起作用,那么我想您必须 手动加载资源修改 模板,然后将其传递到 DialogBox。

From About Dialog Boxes:

The system font can vary between different versions of Windows. To
have your application use the system font no matter which system it is
running on, use DS_SHELLFONT with the typeface MS Shell Dlg, and use
the DIALOGEX Resource instead of the DIALOG Resource. The system maps
this typeface such that your dialog box will use the Tahoma font. Note
that DS_SHELLFONT has no effect if the typeface is not MS Shell Dlg.

I think this is what you want. If that doesn't work, then I guess you'll have to load the resource manually and modify the template before passing it to DialogBox.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文