У меня есть сборка, загруженная как плагин в другое приложение.Я получил доступ к дескриптору окна для главного окна и использовал его, чтобы найти размер для соответствующего размера диалогового окна.
Проблема в том, что GetClientRect
возвращает другой размер при первом открытии моего диалога.То, что я получаю, это немасштабированный размер.Все последующие вызовы возвращают масштабированный размер (в моем случае настройки dpi - 150%).
Пример: первый вызов возвращает размер 1519,1294.Все вызовы после того, как я открыл свой диалог в первый раз, возвращают 2278,1942 (150%).
Кажется, что открытие моего диалога автоматически инициализирует масштабирование точек на дюйм. Есть ли способ, которым я могу вручную инициализировать масштабирование точек на дюйм перед моим первым вызовом GetClientRect
?
Мой текущий способ - быстро открыть и закрыть диалоговое окно при первом его использовании.
Обратите внимание, этот код находится в dll-плагине.Я получаю обратный вызов из основного приложения, где я создаю поток STA, открывающий мой диалог.