С большим усилием я перенес свое приложение MFC с начала Sytem DPI aware (High DPI aware)
в Per Monitor High DPI Aware
, Я вижу, что компоненты MFC, которые я использовал, такие как диалоговые окна, окна сообщений и т. Д., Все еще не per-monitor-dpi aware
вместо этого они по-прежнему ведут себя так, как будто они system-dpi aware
, Теперь, когда виртуализация DPI в Windows пропала, эти компоненты отображаются еще хуже, когда разные мониторы моей машины имеют разное масштабирование DPI.
Например,
Рассмотрим 2 монитора М1 (3840х2160 с 150% dpi scaling
) и М2 (1280х1024 с 100% DPI scaling
). Теперь, когда мое приложение работает на M2, диалоговое окно для выбора цвета, который раньше подходил для M2, не подходит для него (ранее ОС Windows использовала его для уменьшения из-за виртуализации DPI).
Существуют ли какие-либо новые компоненты MFC, которые были представлены в Windows 8 и более, которые поддерживают per-monitor-dpi? например, DIALOGEX2
вместо DIALOGEX
?
Задача ещё не решена.
Других решений пока нет …