Visual Studio 2012 — Несколько шрифтов в диалоге C ++

Есть ли простой способ в C ++ (и если да, то как это сделать, желательно в Visual Studio VS2012), чтобы установить разные свойства шрифта (размер, тип, жирный и т. д.) для разных элементов одного диалогового окна (кнопка, статический текст, заголовок и т. д.)?

Свойства шрифта диалогового окна можно изменить в диалоговом окне «Свойства» в VS2012, но затем они применяются ко всем элементам окна.

Мне нужно выделить одну информацию относительно другой в том же окне, например чтобы визуально легче было отличать метки от значений переменных и статические от изменяемых переменных.

Спасибо за любую помощь.

0

Решение

В недавнем и хорошо написанном статья, Джон Моррисон Леон представляет свое решение, которое точно решает эту проблему и многое другое.

Помимо предоставления желаемых возможностей при форматировании, он предлагает совершенно новый способ простого создания и использования диалоговых окон, чисто C ++ (Win32 без MFC или ATL / WPL, независимый от IDE, отображающий при компиляции вместо времени выполнения).

Эта часть является довольно подробным учебным пособием, лицензированным по открытой лицензии Code Project (CPOL). Он содержит весь исходный код C ++ (zip-файл 37,2 КБ) и примеры (80 + КБ). Это выиграло Лучшую Статью C ++ мая 2015 (Первая премия).

————- некоторые выдержки из этой (длинной) статьи ————————

Альтернативный подход, при котором диалоги полностью определяются как код C ++, который не требует написания поддержки IDE или выполнения ресурсов, сгенерированных IDE. Работает на системе типов C ++.

Принципиальное отличие представленного здесь подхода состоит в том, что ваш код выполняет всю работу по созданию диалога, а не заставляет Windows создавать диалог из ресурса шаблона диалога, к которому вы затем присоединяете код. Нет необходимости в идентификаторах диалоговых окон или элементов управления, потому что нет никакого времени отображения кода в шаблон диалога. Вместо этого есть отображение времени компиляции каждого элемента управления в переменную C ++. Кроме того, каждая из этих переменных имеет свой уникальный тип данных. Такая богатая типизация, возможно, радикальна, но она приносит много преимуществ и является ключом к дизайну. Это позволяет языку C ++ решать многие проблемы во время компиляции с помощью разрешения типов, и это уменьшает и упрощает код, который вы должны написать. На практике это означает, что для каждой переменной, представляющей элемент управления, например, btnCancel, будет сгенерирован уникальный тип данных с тем же именем с префиксом подчеркивания _btnCancel. Как вы увидите, бывают случаи, когда вам нужно обратиться к элементу управления с помощью его тип данных _btnCancel, а не имя переменной btnCancel.

Незнание кодирования макета вместо его перетаскивания рассматривается в следующем разделе, и после этого большинство вещей проще, понятнее и лаконичнее, чем вы, вероятно, привыкли.

Есть несколько других нововведений, в том числе:

• все управляющие переменные содержат динамический текстовый динамический текстовый буфер as_text, через который можно читать и записывать текст окна управления, и который сохраняется при закрытии диалога.

• поддержка не оконных элементов управления, которые просто рисуются в диалоге и реагируют на события мыши. (приведены примеры для некоторых случаев, когда это имеет больше смысла).

• поддержка наложения эстетических метрик (размеры кнопок, интервалы, цвета, стили элементов управления и т. Д.) На уровне приложения во всех размещенных диалоговых окнах.

• замена понятия «якоря» стилями Expand_X и Expand_Y для элементов управления, которые могут быть расширены при увеличении диалогового окна.

• некоторая скромная, но эффективная оптимизация программирования Win 32 с элементами управления.

0

Другие решения


По вопросам рекламы [email protected]