Адаптация приложений C++ Builder к изменению DPI в Windows 10: использование WinAPI для корректной работы с текстомDelphi , Синтаксис , Справочник по API-функциямС приходом Windows 10 и её возможностью динамически изменять DPI (размер текста) без необходимости перезагрузки системы, разработчики столкнулись с новой проблемой: их приложения, созданные в C++ Builder, не были готовы к такому изменению в режиме реального времени. В данной статье мы рассмотрим, как система информирует приложение о смене DPI, какие сообщения следует обрабатывать, и как применить решение, основанное на чистом WinAPI. Обзор проблемыС Windows 10 система больше не требует перезагрузки или выхода из системы для изменения размера текста (DPI). Приложения, созданные в C++ Builder, могут не поддерживать такие изменения в реальном времени. Важно понимать, как система уведомляет приложение о смене DPI и какие сообщения необходимо обрабатывать для корректной работы приложения. Решение проблемыСистема использует сообщение Для того чтобы приложение могло получать это сообщение, включая динамические изменения DPI в Windows 10, необходимо заявить о поддержке DPI для каждого монитора. Предпочтительный способ - указать поддержку в манифесте приложения, установив атрибут
Когда приложение заявляет о поддержке DPI для каждого монитора, система не будет масштабировать окна пиксельно при динамическом изменении DPI. Вместо этого, масштабирование становится задачей самого приложения. Альтернативный путьС C++ Builder 10.3 вы можете использовать события форм:
Не забудьте также установить DPI Awareness в значение Пример кода на Object Pascal (Delphi)
ЗаключениеАдаптация приложений C++ Builder к изменению DPI в Windows 10 требует внимательного подхода и понимания того, как система уведомляет приложение о смене DPI. Использование чистого WinAPI, как описано выше, позволит обеспечить корректную работу приложения с текстом и другими элементами интерфейса при динамическом изменении DPI. Статья о проблеме адаптации приложений, созданных в C++ Builder, к динамическому изменению DPI в Windows 10 и использовании WinAPI для корректной работы с текстом. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Справочник по API-функциям ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |