Только в двух данных режимах можно изменять масштабный коэффициент, используемый Windows при преобразовании логических координат в физические.
В режиме MM_ISOTROPIC физические размеры логической единицы измерения по осям x и y совпадают. При этом можно изменять логические размеры единицы измерения.
Данный режим удобно использовать при выводе на экран различных графических изображений. При этом достигается наибольшее правдоподобие, так как физические размеры объектов с одинаковыми логическими размерами совпадают. Например, прямоугольник с одинаковыми логическими размерами сторон будет отображаться как квадрат. Размер экрана может меняться.
Для изменения масштабного коэффициент предназначены функции SetViewportExtEx и SetWindowExtEx.
Как правило, функция SetWindowExt используется с параметрами, описывающими логические размеры логического окна, а функция SetViewportExt – с параметрами, описывающими ширину и высоту окна.
Предположим, вы хотите получить систему координат, начало которой находится в левом нижнем углу, физические размеры единицы измерения по осям x и y совпадают и размеры рабочей области окна ранжированы в интервале от 0 до 1000 по каждой оси. Для получения такой системы координат можно воспользоваться следующей группой функций:
SetMapMode (hDC, MM_ISOTROPIC);
SetWindowExtEx (hDC, 1000, 1000);
SetViewportExtEx (hDC, xClient, yClient);
SetViewportOrgEx (hDC,0, yClient);
+Y
+X 1000
Рис. Адаптация режима MM_ISOTROPIC
В данном случае нельзя отображать что-либо в правой части рабочей области окна, так как в этом случае x–координата будет больше 1000.
Если же высота рабочей области окна больше, чем ее ширина, то логическая система координат будет расположена следующим образом:
+Y
+X 1000
Рис. Адаптация режима MM_ISOTROPIC
В данном случае вы не можете отображать что-либо в верхней части рабочей области окна, так как в этом случае y–координата будет больше 1000.