Поддержка разных разрешений монитора - PullRequest
3 голосов
/ 01 июня 2009

У меня есть приложение MFC с некоторыми растровыми изображениями, диалоговыми окнами и меню. В настоящее время поддерживается только одно разрешение монитора (1280x1024). Я планирую добавить поддержку различных разрешений монитора. Я полагаю, что для этого мне нужно загрузить растровые изображения с разным разрешением, изменить размер шрифта и т. Д. У меня вопрос, как они обрабатываются в типичном приложении Windows? Используют ли они одно растровое изображение и растягивают / уменьшают его в соответствии с разрешением монитора или на самом деле имеют другой набор растровых изображений в ресурсе и загружают их динамически в зависимости от разрешения? Есть ли стандартное решение для этого?

Ответы [ 5 ]

2 голосов
/ 01 июня 2009

В прошлом я использовал одно большое изображение и соответственно масштабировал.

Убедиться в том, что изменение размера меню и диалогов достаточно сложно, но в CodeProject есть вспомогательные коды, которые могут помочь.

1 голос
/ 01 июня 2009

Я также хотел бы убедиться, что ваше приложение работает с масштабированием Windows DPI. Это может быть лучшей альтернативой при работе на дисплеях с более высоким разрешением, чем необходимость перепроектировать приложение для соответствия определенному разрешению.

1 голос
/ 01 июня 2009

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

Я не думаю, что есть какой-либо стандартный способ обработки разных разрешений в отношении растровых изображений.

1 голос
/ 01 июня 2009

Я бы сказал, чтобы использовать несколько ресурсов с разными разрешениями. Хотя вы можете масштабировать значки динамически, они, вероятно, будут выглядеть лучше, если вы измените их размер в правильной программе для редактирования изображений.

0 голосов
/ 01 июня 2009

Масштабирование растровых изображений будет выглядеть плохо (увеличение их размера всегда будет выглядеть плохо, уменьшение их в зависимости от источника). Если возможно, посмотрите, можете ли вы составить свое большое растровое изображение из нескольких небольших растровых изображений, которые могут хорошо масштабироваться. Много раз довольно легко сделать растровое изображение, которое может хорошо масштабироваться в одном направлении. Например, если вы хотите сделать рамку вокруг чего-либо, вместо использования одного растрового изображения, разрезайте его, как крестики-нолики, на 9 частей. четыре угловых элемента остаются в своем первоначальном размере, верхний и нижний элементы растягиваются по горизонтали, левый и правый по вертикали, а центр идет в обоих направлениях (если он вообще используется).

...