Windows中的默认对话框字体是 MS Shell Dlg 。
我不喜欢它,因为它不正确。
手动更改单个对话框项的字体很容易,但如何显示应用于的“正确”系统字体(from lfMessageFont
)的对话框在调用DialogBox
(或使用ATL / WTL)时,其所有控件 (非手动)?
我之所以多次说“不是手动”的原因是我正在寻找一个解决方案更好而不是使用EnumChildWindows
循环所有内容(或类似的东西)。是否存在?
答案 0 :(得分:2)
系统字体可能因Windows的不同版本而异。至 让您的应用程序使用系统字体,无论它是哪个系统 运行,使用DS_SHELLFONT与字体MS Shell Dlg,并使用 DIALOGEX资源而不是DIALOG资源。系统映射 这种字体使您的对话框将使用Tahoma字体。注意 如果字体不是MS Shell Dlg,则DS_SHELLFONT无效。
我认为这就是你想要的。如果这不起作用,那么我猜你必须先将load the resource manually和modify the template传递给DialogBox。