Поддержка мониторов 4K
От: ahaos  
Дата: 03.11.22 06:05
Оценка:
Имеется приложение, которое отлажено на работы на FHD. При запуске на мониторе 4K иконки (32x32) слишком мелкие и картинки вставленные в диалоговые окна тоже.
Какие варианты решения данной проблемы есть? Делать новые иконки и картинки и подгружать в зависимости от разрешения или все-таки есть вариант, когда они автоматически будут растягиваться хотя бы с потерей качества?
Re: Поддержка мониторов 4K
От: qaz77  
Дата: 03.11.22 10:13
Оценка:
Здравствуйте, ahaos, Вы писали:

A>Имеется приложение, которое отлажено на работы на FHD. При запуске на мониторе 4K иконки (32x32) слишком мелкие и картинки вставленные в диалоговые окна тоже.

A>Какие варианты решения данной проблемы есть? Делать новые иконки и картинки и подгружать в зависимости от разрешения или все-таки есть вариант, когда они автоматически будут растягиваться хотя бы с потерей качества?

Если при создании ImageList указывать размер изображения с учетом DPI окна (GetDpiForWindow), то иконки будут растягиваться автоматически, но с некоторым замыливанием.
Я не знаю, что за картинки в диалогах, но если речь о контролах типа ListView, TreeView и т.п., то для них это работает.

Это в простом случае, если мы полагаем, что во время работы программы DPI менять не будут и перетаскивать окна между мониторами с разными DPI также не будут.
Re: Поддержка мониторов 4K
От: okman Беларусь https://searchinform.ru/
Дата: 03.11.22 10:27
Оценка: 2 (1) +1
Здравствуйте, ahaos, Вы писали:

A>Имеется приложение, которое отлажено на работы на FHD. При запуске на мониторе 4K иконки (32x32) слишком мелкие и картинки вставленные в диалоговые окна тоже.

A>Какие варианты решения данной проблемы есть? Делать новые иконки и картинки и подгружать в зависимости от разрешения или все-таки есть вариант, когда они автоматически будут растягиваться хотя бы с потерей качества?

Здесь следует пробовать подходы с использованием векторной графики для изображений — SVG, EMF и т.д.
Если все сделать правильно, то будет без разницы, какое разрешение и DPI выставлено для дисплея.
Кстати, Direct2D в последних версиях Windows уже поддерживает SVG. Либо можно попробовать сторонние библиотеки для конвертации его в какой-нибудь PNG/JPEG и
потом выводить на экран.
Re[2]: Поддержка мониторов 4K
От: ahaos  
Дата: 03.11.22 20:33
Оценка:
Здравствуйте, qaz77, Вы писали:

Q>Здравствуйте, ahaos, Вы писали:


A>>Имеется приложение, которое отлажено на работы на FHD. При запуске на мониторе 4K иконки (32x32) слишком мелкие и картинки вставленные в диалоговые окна тоже.

A>>Какие варианты решения данной проблемы есть? Делать новые иконки и картинки и подгружать в зависимости от разрешения или все-таки есть вариант, когда они автоматически будут растягиваться хотя бы с потерей качества?

Q>Если при создании ImageList указывать размер изображения с учетом DPI окна (GetDpiForWindow), то иконки будут растягиваться автоматически, но с некоторым замыливанием.

Q>Я не знаю, что за картинки в диалогах, но если речь о контролах типа ListView, TreeView и т.п., то для них это работает.

Q>Это в простом случае, если мы полагаем, что во время работы программы DPI менять не будут и перетаскивать окна между мониторами с разными DPI также не будут.



Проблема решилась просто. Я отключил поддержку высокого DPI в настройках проекта. И обе проблемы разом решились. Теперь и иконки в панелях инструментов как я и хотел и картинки в диалогах как и хотелось.
Re: Поддержка мониторов 4K
От: Morgan  
Дата: 07.07.24 16:14
Оценка:
Здравствуйте, ahaos, Вы писали:

A>Имеется приложение, которое отлажено на работы на FHD. При запуске на мониторе 4K иконки (32x32) слишком мелкие и картинки вставленные в диалоговые окна тоже.

A>Какие варианты решения данной проблемы есть? Делать новые иконки и картинки и подгружать в зависимости от разрешения или все-таки есть вариант, когда они автоматически будут растягиваться хотя бы с потерей качества?

Можно делать изображения под каждый масштаб от 100 до 200% и будет наилучшее качество. Я сделал отдельно только для 200% переключение иконок вручную, в зависимости от dpi ещё 10 лет назад. Смотрится неплохо. Отключать поддержку dpi не надо, окно будет размытое.
Independent software developer
Re[2]: Поддержка мониторов 4K
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 07.07.24 17:18
Оценка:
Здравствуйте, okman, Вы писали:

O>следует пробовать подходы с использованием векторной графики


А винда до сих пор не научилась сама масштабировать отдельное окно вместе с дочерними?

Я в курсе, что получается кривовато и неэстетично, но так и при глобальном масштабировании всего рабочего стола получается так же.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.