Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Режимы сопоставления описаны в следующей таблице.
| Режим сопоставления | Описание |
|---|---|
| MM_ANISOTROPIC | Каждая единица в пространстве страницы сопоставляется с указанной приложением единицей в пространстве устройства. Ось может быть равно масштабированной или неравномасштабированной (например, круг, нарисованный в мировом пространстве, может выглядеть как эллипс при изображении на данном устройстве). Ориентация оси также указывается приложением. |
| MM_HIENGLISH | Каждая единица в пространстве страницы сопоставляется с 0,001 дюйма в пространстве устройства. Значение x увеличивается слева направо. Значение y увеличивается от нижнего до верхнего. |
| MM_HIMETRIC | Каждая единица в пространстве страницы сопоставляется с 0,01 миллиметра в пространстве устройства. Значение x увеличивается слева направо. Значение y увеличивается от нижнего до верхнего. |
| MM_ISOTROPIC | Каждая единица в пространстве страницы сопоставляется с определяемой приложением единицей в пространстве устройства. Оси всегда масштабируются одинаково. Ориентация осей может быть указана приложением. |
| MM_LOENGLISH | Каждая единица в пространстве страницы сопоставляется с 0,01 дюйма в пространстве устройства. Значение x увеличивается слева направо. Значение y увеличивается от нижнего до верхнего. |
| MM_LOMETRIC | Каждая единица в пространстве страницы сопоставляется с 0,1 миллиметром в пространстве устройства. Значение x увеличивается слева направо. Значение y увеличивается от нижнего до верхнего. |
| MM_TEXT | Каждая единица в пространстве страницы сопоставляется с одним пикселем; То есть масштабирование не выполняется вообще. Если перевод не действует (это значение по умолчанию), пространство страницы в режиме сопоставления MM_TEXT эквивалентно физическому пространству устройства. Значение x увеличивается слева направо. Значение y увеличивается с верхней до нижней. |
| MM_TWIPS | Каждая единица в пространстве страницы сопоставляется с одной двадцатой точкой принтера (1/1440 дюйма). Значение x увеличивается слева направо. Значение y увеличивается от нижнего до верхнего. |
Чтобы задать режим сопоставления, вызовите функцию SetMapMode. Получите текущий режим сопоставления для контроллера домена, вызвав функцию GetMapMode.
Преобразования пространства страницы в пространство устройства состоят из значений, определяемых на основе точек, заданных окном и видовой областью. В этом контексте окно относится к логической системе координат пространства страницы, а вьюпорт относится к системе координат устройства в пространстве устройства. Окно и область просмотра состоят из начальной точки, горизонтального (x) размера и вертикального (y) размера. Параметры окна находятся в логических координатах; окно просмотра в координатах устройства (пиксели). Система объединяет источники и экстенты из окна и просмотрного окна, чтобы создать преобразование. Это означает, что окно и окно представления указывают половину факторов, необходимых для определения преобразования, используемого для сопоставления точек в пространстве страницы с пространством устройства. Таким образом, система сопоставляет начало окна с началом области просмотра и размеры окна с размерами области просмотра, как показано на следующем рисунке.
Экстенты окна и окна представления устанавливают соотношение или масштабный коэффициент, используемые в преобразованиях из пространства страницы в пространство устройства. Для шести предопределенных режимов сопоставления (MM_HIENGLISH, MM_LOENGLISH, MM_HIMETRIC, MM_LOMETRIC, MM_TEXT и MM_TWIPS) размеры задаются системой при вызове SetMapMode. Их нельзя изменить. Другие два режима сопоставления (MM_ISOTROPIC и MM_ANISOTROPIC) требуют указания экстентов. Это делается путем вызова SetMapMode, чтобы задать соответствующий режим, а затем вызова функций SetWindowExtEx и SetViewportExtEx, чтобы указать размеры. В режиме сопоставления MM_ISOTROPIC важно вызывать SetWindowExtEx перед вызовом SetViewportExtEx.
Начало координат окна и области просмотра устанавливают трансформацию, используемую при преобразовании из пространства страницы в пространство устройства. Задайте источники окна и окна просмотра с помощью функций SetWindowOrgEx и SetViewportOrgEx. Источники не зависят от экстентов, и приложение может задать их независимо от текущего режима сопоставления. Изменение режима сопоставления не влияет на текущий набор источников (хотя это может повлиять на экстенты). Источники указываются в абсолютных единицах, на которые не влияет текущий режим сопоставления. Чтобы изменить источники, используйте функции OffsetWindowOrgEx и OffsetViewportOrgEx.
В следующей формуле показана математика, связанная с преобразованием точки из пространства страницы в пространство устройства.
Dx = ((Lx - WOx) * VEx / WEx) + VOx
Задействованы следующие переменные.
Dx x value in device units
Lx x value in logical units (also known as page space units)
WOx window x origin
VOx viewport x origin
WEx window x-extent
VEx viewport x-extent
То же уравнение с заменой x на y преобразует y-компонент точки.
Формула сначала смещает точку от источника координат. Это значение, больше не искажённое началом координат, затем масштабируется в целевую систему координат по соотношению размеров. Наконец, масштабируемое значение смещается источником назначения до окончательного сопоставления.
Функции LPtoDP и DPtoLP могут использоваться для преобразования из логических точек в точки устройства и из точек устройства в логические точки соответственно.