Новые книги

В бизнесе да и в жизни уже не так важно, что именно вы делаете. Гораздо важнее то, как вы это делаете.

Дов Сайдман, основатель и CEO компании LRN, на страницах своей книги убедительно доказывает: моральные «факторы», прежде считавшиеся «факультативными», определяют сегодня ваш успех. Только ориентируясь на нравственные ценности, выстраивая отношения на основании доверия и заботясь о собственной репутации, вы сможете обойти конкурентов и преуспеть в бизнесе и в жизни.

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

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

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

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

Таким образом, даже при перемещии окна координаты объектов внутри окна остаются неизменными. При этом единицы, в которых измеряются координаты, зависят от режима отображения (mapping mode), установленного для данного окна. Единицы измерения, зависящие от режима отображения, называют логическими единицами координатами.

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

Идентификаторы, применяемые для обозначения режимов отображения

Идентификатор Значение Эффект
MM_TEXT 1 Логическая единица равна пикселю, начало координат - левый верхний угол окна, положительное значение x - вправо, положительное значение y - вниз (обычный отсчет)
MM_LOMETRIC 2 Логическая единица равна 0.1 мм, отсчет координат - обычный
MM_HIMETRIC 3 Логическая единица равна 0,01 мм, отсчет координат - обычный
MM_LOENGLISH 4 Логическая единица равна 0,1 дюйма, отсчет координат - обычный
MM_HIENGLISH 5 Логическая единица равна 0,001 дюйма, отсчет координат - обычный
MM_TWIPS 6 Логическая единица равна 1/12 точки на принтере (~1/1440 дюйма - "твип"), отсчет координат - обычный
MM_ISOTROPIC 7 Логические единицы и направление осей определяются программистом с помощью функций SetWindowExtEx() и SetViewportExtEx(), единицы по осям имеют одинаковый размер
MM_ANISOTROPIC 8 Логические единицы и направления осей определяются так же, как и для MM_ISOTROPIC, но размеры единиц по осям различны
MM_MIN   MM_TEXT
MM_MAX   MM_ANISOTROPIC
MM_MAX_FIXEDSCALE   MM_TWIPS

Для установки текущего режима отображения используется функция SetMappingMode(), которая в файле wingdi.h описана следующим образом:

  WINGDIAPI int  WINAPI SetMapMode(HDC, inc)
Первый аргумент этой функции - хэндл контекста устройства, для которого устанавливается данный режим. Второй аргумент определяет задаваемый режим отображения. В том же файле wingdi.h можно найти и идентификаторы, использующиеся для обозначения режимов отображения(см. табл.). Надеюсь, что после того, как была просмотрена таблица, вопросов у читателя не возникло. Теперь ясно, что иногда для решения конкретных задач (например, построения графиков) можно использовать различные режимы отображения. При создании окна по умолчанию устанавливается режим MM_TEXT, т.е. все координаты исчисляются в пикселах.