Выбор режима отображения


5.5.1 Физические и логические координаты

Физические координаты имеют отношение непосредственно к физическому устройству вывода. Здесь, в качестве единицы измерения всегда используется пиксел. Если устройство вывода - монитор, то физические координаты носят название экранных координат. Начало этой системы координат располагается в левом верхнем углу (рис. 5.1).

Чтобы определить физическое разрешение монитора, следует использовать функциюGetDeviceCaps:

HDC hdc;

intnVertRes, nHorzRes,

hdc = CreateDC("DISPLAY", NULL, NULL, NULL);

nVertRes=GetDeviceCaps(hdc, VETREZ);nHorzRes =GetDeviceCaps(hdc, HORZRES);

DeleteDC(hdc);

Использование физических координат неудобно по двум причинам.

 

Рисунок 5.1. Физическая система координат монитора

Во-первых, разрешение зависит от типа видеоконтроллера, а во-вторых, что самое главное, от видеоконтроллера зависит отношения высоты к ширине пиксела. Потому, если вы попробуете в физической системе координат нарисовать квадрат, например 50 х 50 пикселов, то, в общем случае, вы получите прямоугольник. По той же причине вместо окружности получится эллипс. Избежать этих неприятностей помогает логическая система координат.

5.5.2 Логическая система координат

Приложение может использовать несколько логических координат. Но постарайтесь не использовать более одной, так как в них очень легко запутаться. Здесь можно использовать любое направление координатных осей. можно выбирать начало системы координат.

Для установки режима отображения, определяющего направление осей и размер логической единицы системы координат, используется функция SetMapMode.

Int SetMapMode(

HDC, // дескриптор контекста отображения

int nMapMode II режим отображения

);

Функция возвращает режим отображения установленный ранее.

Параметр nMapMode может принимать одно от следующих значений:

Режим отображения nMapMode   Направление оси X   Направление оси Y   Размер одной логической единицы   V  
MM_TEXT   Вправо   Вниз   1 пиксел (физическая система координат)  
MM_LOMETR1C   Вправо   Вниз   0,1 мм.  
MM_HIMETRIC   Вправо   Вниз   0,01 мм.  
MM_LOENGLISH   Вправо   Вниз   0,01 дюйм.  
MM H1ENCL1SH   Вправо   Вниз   0,001 дюйм  
MM_TWIPS   Вправо   Вниз   1/1440 дюйма  
MM _ISOTROPIC   Можно выбирать   Можно выбирать   Произвольный, одинаковый для осей Х и Y  
MM_ANISOTROPIC   Можно выбирать   Можно выбирать   Произвольный, может быть разный для осей Х и Y  

 

ФункцияGetMapMode может в любой момент определить текущий режим отображения:



Дата добавления: 2017-01-26; просмотров: 1426;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.