Системный шрифт диалога по умолчанию? - PullRequest
2 голосов
/ 28 августа 2011

Шрифт диалогового окна по умолчанию в Windows: MS Shell Dlg .

Мне это не нравится, потому что это неправильно.

Это просто вручную изменить шрифт отдельного элемента диалога, но как отобразить диалоговое окно с «правильным» системным шрифтом ( из lfMessageFont), примененным к все его элементов управления по умолчанию ( не вручную ) при вызове DialogBox (или с использованием ATL / WTL)?

Примечание:

Причина, по которой я так много раз говорил " не вручную ", заключается в том, что я ищу решение лучше , чем циклическоевсе с EnumChildWindows (или тому подобное).Один существует?

1 Ответ

2 голосов
/ 28 августа 2011

С О диалоговых окнах :

Системный шрифт может отличаться в разных версиях Windows.Чтобы ваше приложение использовало системный шрифт независимо от того, на какой системе оно запущено, используйте DS_SHELLFONT с гарнитурой MS Shell Dlg и используйте ресурс DIALOGEX вместо ресурса DIALOG.Система отображает этот шрифт так, чтобы в вашем диалоговом окне использовался шрифт Tahoma.Обратите внимание, что DS_SHELLFONT не работает, если гарнитура не MS Shell Dlg.

Я думаю, это то, что вы хотите.Если это не сработает, то, я думаю, вам придется загрузить ресурс вручную и изменить шаблон перед передачей его в DialogBox.

...