#mfc #dpi
#mfc #dpi
Вопрос:
Я хочу всегда отображать пользовательский интерфейс размером 96 точек на дюйм, не зависящий от DPI для каждого монитора.
При перемещении или изменении размера окна координаты вводятся по-разному в зависимости от DPI, разрушая пользовательский интерфейс.
Когда я получаю WM_DPICHANGE
сообщение и OnSize
, должен ли я пересчитать в соответствии с текущим значением DPI?
Существует так много диалоговых окон и элементов управления, а код огромен, что расстраивает. Есть ли простой способ сделать это?
Есть ли способ указать процесс масштабирования DPI независимо от Windows DPI?
Комментарии:
1. Можете ли вы просто отключить поддержку DPI для всего проекта?
2. Что для вас означает «тот же размер» ? Одинаковое количество пикселей в единицах устройства или одинаковое количество пикселей в логических единицах?
3. @Adrian Mole Я могу отключить распознавание точек на дюйм. Однако это растягивает растровое изображение в Windows.
4. @IInspectable // Прежде всего, я прошу прощения за мои глупые знания английского. Одинаковый размер означает, что при изменении размера элемента управления значения x, y, переданные в OnSize, будут получены как 96 точек на дюйм при любом масштабе точек на дюйм!. В моем проекте много управляющих интерфейсов, и мне нужно разместить все на одном экране. Он всегда должен отображаться в том размере, который вы видите при 96dpi.
5. Почему вы хотите это сделать? Каков ваш вариант использования?