В данном (текстовом) режиме работы оси координат направлены соответственно: x – вправо, а y – вниз. Изначально центр системы координат находится в левом верхнем углу (экрана, окна или рабочей области окна в зависимости от того, как получен контекст устройства):
Рис. Режим отображения MM_TEXT
При помощи функций SetViewOrgEx и SetWindowOrgEx можно сместить начало координат в любую точку экрана.
Например, пусть нам необходимо поместить точку с логическими координатами x=0; y=0 в центр рабочей области окна, то мы можем использовать функцию SetViewportOrg :
SetViewportOrgEx (hDC, // Контекст устройства
xClient/2, // Ширина рабочей области окна в пикселах
yClient/2 // Высота рабочей области окна в пикселах
NULL);
Система координат будет иметь следующий вид:
-Y
-X +X
+Y
Рис. Начало координат смещено в центр экрана
Теперь функции, использующие логические координаты, будут считать началом координат центр экрана.
Можно воспользоваться для изменения начала координат также функцией SetWindowOrgEx();
SetWindowOrgEx (hDC, // Контекст устройства
xClient/2 // Половина ширины рабочей области
// в логических единицах
yClient/2 // Половина высоты рабочей области
// в логических единицах
NULL);
Разница заключается в том, что в функции SetViewportOrgEx параметры задаются в единицах физического устройства, а в SetWindowOrgEx в логических единицах.