如果你对 GDI 有所研究,在调用 GetStockObject 时,你应该碰到过这两个字体:SYSTEM_FONT 和 DEFAULT_GUI_FONT,那么它们有什么区别呢?
实际上,它们是没有人再使用的字体。
在 Windows 2.0 的古老时代,对话框使用的字体是一个位图字体,被称之为 System。
这个字体就是通过 SYSTEM_FONT 来获取的,而且为了保持兼容性,它依然是对话框所使用的默认字体。当然了,在现代操作系统的年代,已经没有多少人会使用这种比较丑陋的字体了。(除此之外,由于它是一种位图字体,因此在高分辨率下看起来不太美观,也不能消除锯齿。)
它的另一个兄弟,DEFAULT_GUI_FONT,它的历史没有那么辉煌。它是在 Windows 95 开发时期被创建的一个字体,当时开发团队希望它能够成为新的 GUI 字体标准,但到 1994 年 7 月,Windows 本身停止使用它,转而使用 SystemParametersInfo 函数返回的各种字体。它的存在现在已经退化了。
SYSTEM_FONT 和 DEFAULT_GUI_FONT 的一个主要问题是,在典型的美式英语语言的机器上,它们会被映射到那些不支持 ClearType 的位图字体。
总结
有一段时间,我花了些时间研究了 Topomel Box 的 GDI 资源泄漏的问题,就有幸碰到过这两个字体,给我的感觉是:它确实没有现代字帖那么美观。
还是”微软雅黑”对我们好!
最后
Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《What are SYSTEM_FONT and DEFAULT_GUI_FONT?》
领取专属 10元无门槛券
私享最新 技术干货