CCM_DPISCALE общее управляющее сообщение - PullRequest
0 голосов
/ 28 июня 2018

Я обновляю существующее приложение Win32, чтобы оно поддерживало DPI. Следуя различным инструкциям на MSDN и других сайтах, я вручную масштабирую свои координаты и размеры шрифта в соответствии с текущим разрешением монитора.

Я только что наткнулся на это сообщение: CCM_DPISCALE . Документы говорят:

Включает автоматическое масштабирование высоких точек на дюйм (dpi) в Tree-View элементы управления, элементы управления List-View, элементы управления ComboBoxEx, элементы управления заголовка, Кнопки, элементы управления панели инструментов, элементы управления анимацией и списки изображений

Но что это на самом деле делает ? Я пытаюсь отправить сообщение на мой контроль следующим образом:

SendMessage(hWnd, CCM_DPISCALE, (WPARAM) TRUE, 0);

Но он не оказывает заметного влияния на шрифт, размер, расположение - что угодно, при любом DPI.

Я использую Comclt32.dll версию 6.0 согласно документации.

Единственная ссылка, которую я могу найти на это сообщение при поиске в Google, - это страница MSDN и ссылка из документации LVCOLUMNA .

Что на самом деле должно делать это сообщение?

1 Ответ

0 голосов
/ 04 июля 2018

Я выяснил хотя бы небольшую часть того, что это делает.

В элементе управления ListView, если столбцы создаются с фиксированной шириной (LVCFMT_FIXED_WIDTH) и если вы не укажете LVCFMT_NO_DPI_SCALE, CCM_DPISCALE будет масштабировать ширину столбца в соответствии с текущим DPI.

Если у вас есть сгруппированный стиль LVS_REPORT ListView, а заголовок группы содержит изображение (LVGF_TITLEIMAGE), это изображение также будет масштабировано (но не текст группы (LVGF_HEADER) ))

Я не проверял, используется ли это масштабирование для каждого монитора, и я не нашел ничего другого, что делает это сообщение (хотя, согласно моему вопросу, оно задокументировано для воздействия на несколько элементов управления). Мне интересно узнать, что еще делает это сообщение!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...