Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Запрет масштабирования шрифта / 9 сообщений из 9, страница 1 из 1
23.07.2018, 17:02
    #39677811
Max-xaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрет масштабирования шрифта
Пишу прогу для разных людей.
Некоторые несознательные заходят у винды в Панель управления - Экран - Удобство чтения с экрана. Ставят там 125 или 150 процентов, т.к. "мы старенькие и плохо видим".
В результате в программе напичканной разными кнопками и таблицами все удобное форматирование слетает к е..... Надписи на кнопках видны наполовину, жесткая высота строк в стринггриде обрезает внутренний текст и т.п.
Какие настройки у программы сделать, чтобы винда не трогала ее дочерние формы, пытаясь растянуть шрифт?
Перелопачивать прогу, чтобы всем было красиво - очень долго, более 10 тыщ строк накопилось.
Меньшее разрешение делать - не выход, т.к. нужно, чтобы на экране 1280х1024 умещалось все, что нужно для одновременного просмотра без скроллинга. Если делают 1024х768, то многое нужное уходят за границы экрана.

P.S. Пишу на старом Embarcadero, если это принципиально.
...
Рейтинг: 0 / 0
23.07.2018, 17:20
    #39677828
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрет масштабирования шрифта
Max-xaMКакие настройки у программы сделать, чтобы винда не трогала ее дочерние формы, пытаясь
растянуть шрифт?

За такие желания разработчику надо бы дать по шее, ибо желания пользователя по оформлению
важнее того, что там себе надизайнено. Если ты не умеешь сделать вменяемый резиновый
дизайн - RTFM TCustomForm::Scaled и быстрые ноги тебе в руки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23.07.2018, 23:08
    #39677977
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрет масштабирования шрифта
авторВ результате в программе напичканной разными кнопками и таблицами все удобное форматирование слетает к е..... Надписи на кнопках видны наполовину, жесткая высота строк в стринггриде обрезает внутренний текст и т.п.


Ну, пиши лучше, качественнее. И всё будет ок.
авторКакие настройки у программы сделать, чтобы винда не трогала ее дочерние формы, пытаясь растянуть шрифт?


никакие. Это глобальные установки DPI устройства -экрана.

авторПерелопачивать прогу, чтобы всем было красиво - очень долго, более 10 тыщ строк накопилось.
Меньшее разрешение делать - не выход, т.к. нужно, чтобы на экране 1280х1024 умещалось все, что нужно для одновременного просмотра без скроллинга. Если делают 1024х768, то многое нужное уходят за границы экрана.


Это не размер экрана. Это разрешение дисплея в точках на дюйм (DPI).
...
Рейтинг: 0 / 0
24.07.2018, 14:01
    #39678282
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрет масштабирования шрифта
DPI and Device-Independent Pixels

DPI-Aware Applications
To avoid DWM scaling, a program can mark itself as DPI-aware. This tells the DWM not to perform any automatic DPI scaling. All new applications should be designed to be DPI-aware, because DPI awareness improves the appearance of the UI at higher DPI settings.

A program declares itself DPI-aware through its application manifest. A manifest is a simply an XML file that describes a DLL or application. The manifest is typically embedded in the executable file, although it can be provided as a separate file. A manifest contains information such as DLL dependencies, the requested privilege level, and what version of Windows the program was designed for.

To declare that your program is DPI-aware, include the following information in the manifest.

Код: xml
1.
2.
3.
4.
5.
6.
7.
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
      <dpiAware>true</dpiAware>
    </asmv3:windowsSettings>
  </asmv3:application>
</assembly>
...
Рейтинг: 0 / 0
24.07.2018, 14:32
    #39678317
d7i
d7i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрет масштабирования шрифта
DPI-Aware Applications - где-то я читал, что это актуально только для сенсорных экранов...
Что-то смутно я вспоминаю, что пытался манипулировать этим в манифесте, но в обычном декстопном приложение
ничего не срабатывало. Впрочем, это было давно и я могу ошибаться...
...
Рейтинг: 0 / 0
24.07.2018, 14:34
    #39678318
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрет масштабирования шрифта
Манифесты вообще имеют привычку не срабатывать без каких-либо диагностических сообщений.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.07.2018, 14:58
    #39678335
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрет масштабирования шрифта
d7iDPI-Aware Applications - где-то я читал, что это актуально только для сенсорных экранов...
это неправда

Dimitry SibiryakovМанифесты вообще имеют привычку не срабатывать без каких-либо диагностических сообщений.

не нравится манифест - вызывайте
Код: plaintext
1.
SetProcessDpiAwareness(PROCESS_PER_MONITOR_DPI_AWARE);




ЗЫ
винда 8.1+ требуется
...
Рейтинг: 0 / 0
24.07.2018, 15:51
    #39678378
d7i
d7i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрет масштабирования шрифта
ИзопропилЗЫ
винда 8.1+ требуется

Вона оно чё... Невнимательно я читал документацию.
То-то оно у меня на 7 не работало...
...
Рейтинг: 0 / 0
25.07.2018, 00:32
    #39678635
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрет масштабирования шрифта
d7i, если запускаешь на 7-ке апликуху старого образца (XP style), щелкаешь на экзешник правой кнопкой мыши, "Свойства", "Совместимость", "Изменить параметры для всех пользователей", галочку на "Отключить масштабирование изображения при высоком разрешении экрана", кнопка "Применить".
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Запрет масштабирования шрифта / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]