系统默认对话框字体?

时间:2011-08-28 05:27:58

标签: winapi fonts atl wtl

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

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

手动更改单个对话框项的字体很容易,但如何显示应用于的“正确”系统字体(from lfMessageFont)的对话框在调用DialogBox(或使用ATL / WTL)时,其所有控件 非手动)?

注意:

我之所以多次说“不是手动”的原因是我正在寻找一个解决方案更好而不是使用EnumChildWindows循环所有内容(或类似的东西)。是否存在?

1 个答案:

答案 0 :(得分:2)

来自About Dialog Boxes

  

系统字体可能因Windows的不同版本而异。至   让您的应用程序使用系统字体,无论它是哪个系统   运行,使用DS_SHELLFONT与字体MS Shell Dlg,并使用   DIALOGEX资源而不是DIALOG资源。系统映射   这种字体使您的对话框将使用Tahoma字体。注意   如果字体不是MS Shell Dlg,则DS_SHELLFONT无效。

我认为这就是你想要的。如果这不起作用,那么我猜你必须先将load the resource manuallymodify the template传递给DialogBox。