@mrgloom

Как осуществить перевод MFC из логических в физические координаты?

Допустим, есть текст, который задаётся структурой LOGFONT

Написано, что задаётся в logical units, как я понял на перевод из logical в device влияет только mapping mode, а так же возможно смещение координат, т.е. если я ничего не применяю, то logical unit= device unit?

И что делать, если я применяю mapping mode, например, сжал по Y в 2 раза, как мне потом эту информацию выцепить при выборе размера шрифта?

Я рисую прямо на изображении 1:1, которое потом сохраняю в файл и мне надо проставить высоту текста в % от высоты изображения.

И как объясняется эта формула?
lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);


Еще непонятно, что имеется ввиду в dc.GetDeviceCaps(LOGPIXELSY)

LOGPIXELSY
Number of pixels per logical inch along the screen height. In a system with multiple display monitors, this value is the same for all monitors.


Что значит
Number of pixels per logical inch


Чо такое logical inch? Разве логические координаты не абстрактные?
  • Вопрос задан
  • 2474 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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