Почему GetSystemMetrics (SM_CXVIRTUALSCREEN) возвращает «плохие» значения? - PullRequest
0 голосов
/ 11 июля 2019

Проблема в том, что я теряю панели инструментов, когда они перетаскиваются из 4k в стандартное разрешение.монитор на 200% масштабируемом рабочем столе (они ТОЛЬКО VANISH) (получено из CMFCToolbar).Это немного похоже на ошибку MFC, так как я не занимаюсь процессом перетаскивания, однако в приложении.при запуске он проверяет, что где-то на рабочем столе находятся окна -

int width =  GetSystemMetrics(SM_CXVIRTUALSCREEN);
int height = GetSystemMetrics(SM_CYVIRTUALSCREEN);

, что дает мне 11520 (неверно) x 2160 (правильно).

У меня включен монитор 4Kслева и монитор 1080p справа.Масштабирование рабочего стола составляет 200%

С масштабированием на монитор я получаю 5760 x 2160. Что вполне вероятно;приложение на мониторе 4к.

(Без поддержки DPI я получаю 5760 x 1080. Разве это не говорит мне, что мой основной монитор имеет разрешение 1920?)

Итак (1) Есть ли ошибка в сообщении этих APIмне мой размер рабочего стола?(2) Нужно ли копаться в источнике MFC, чтобы понять, почему он не может справиться с перетаскиванием с высокой четкости на экран sd?

...