@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() ), но суть там такая же.
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы