@inf1k

Как сделать масштабирование приложения high dpi?

В своем приложении на MFC пытаюсь развернуть диалоговое окно на весь экран, но оно разворачивается больше чем на весь экран. Если на моем ноутбуке (win7) еще можно настроить, то на high dpi мониторе вообще вакханалия получается. К сожалению, не могу протестировать на high dpi мониторе. поэтому хочу узнать, что я неправильно делаю.

Есть следующий метод для масштабирования, но он похоже бесполезен.

HDC screen = ::GetDC(0);
giDpi = GetDeviceCaps(screen, LOGPIXELSX);

int dpiScale(const int &iSrc)
{
	return MulDiv(iSrc, giDpi, 96);
}


Собственно далее, в диалоговом окне, и инит делаю следующее:
CRect rect;
	GetParent()->GetWindowRect(&rect);
	SetWindowPos(NULL, 0, 0, rect.Width() - dpiScale(100), rect.Height() - dpiScale(100), SWP_NOREDRAW);


Находил информацию масштабирования исходя из монитора ( GetDpiForMonitor() ), но суть там такая же.
  • Вопрос задан
  • 144 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
29 нояб. 2024, в 10:38
5000 руб./за проект
29 нояб. 2024, в 10:27
100000 руб./за проект
29 нояб. 2024, в 09:43
100000 руб./за проект