Относительно GDI Mapping в моем примере из учебника - PullRequest
1 голос
/ 20 сентября 2011

Это фрагмент примера из моей книги.В этом коде я не понимаю, что значение SetWindowOrgEx x увеличивается влево, почему это так?Технически это должно быть похоже на MM_TEXT, в котором значение x увеличивается с направлением вправо.Я также замечаю, что значение x увеличивается вправо с SetViewportOrgEx.Почему значение x увеличивается вправо с помощью SetViewportOrgEx, а значение x SetWindowOrgEx увеличивается влево?Кроме того, какой смысл менять оба экстента?Не могли бы вы просто отредактировать один из экстентов?

SetMapMode(hdc, MM_ISOTROPIC);
SetWindowExtEx(hdc, 276, 72, NULL);
SetViewportExtEx(hdc, cxClient, cyClient, NULL);

SetWindowOrgEx(hdc, 138, 36, NULL);
SetViewportOrgEx(hdc, cxClient / 2, cyClient / 2, NULL);

1 Ответ

1 голос
/ 20 сентября 2011

Это зависит от того, что вы делаете, но эти функции используются для смещения оси, поэтому логическая точка (0, 0) относится к чему-то другому, кроме верхнего левого угла.

Обычно вы должны использовать только одну функцию, SetWindowOrgEx и SetViewportOrgEx, в зависимости от того, что соответствует вашим потребностям; не оба.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...