2

WindowsのデフォルトのダイアログボックスフォントはMSShellDlgです。

それが正しくないので、私はそれが好きではありません。

単一のダイアログアイテムのフォントを手動で変更するのは簡単ですが、呼び出すとき(またはATL /を使用するとき)にデフォルトで手動ではなく)すべてのコントロールに「正しい」システムフォント(からlfMessageFont)が適用されたダイアログボックスを表示するにはどうすればよいですか?WTL)?DialogBox

ノート:

私が何度も「手動ではない」と言った理由は、すべてを(または同様に)ループするよりも優れた解決策を探しているからです。EnumChildWindows存在しますか?

4

1 に答える 1

2

ダイアログボックスについて

システムフォントは、Windowsのバージョンによって異なる場合があります。アプリケーションで実行しているシステムに関係なくシステムフォントを使用するには、書体MS Shell DlgでDS_SHELLFONTを使用し、DIALOGリソースの代わりにDIALOGEXリソースを使用します。ダイアログボックスがTahomaフォントを使用するように、システムはこの書体をマップします。書体がMSShellDlgでない場合、DS_SHELLFONTは効果がないことに注意してください。

これがあなたの望むものだと思います。それが機能しない場合は、リソースを手動でロードし、 DialogBoxに渡す前にテンプレート変更する必要があると思います。

于 2011-08-28T06:03:35.840 に答える