Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Visual1.doc
Скачиваний:
8
Добавлен:
07.03.2016
Размер:
4.35 Mб
Скачать

6.4. Масштабування

Розглядаючи зображення у вікні попереднього перегляду, ви, безсумнівно, звернули увагу на те, що зображення прямокутника в ньому виглядає якось дрібнувато, особливо в порівнянні з "рідним" вікном програми. Це сталося тому, що піксель на екрані монітора і точка, як її розуміє принтер, мають різні розміри. Хоча в обох випадках – і в екранній версії, і в роздруківці – прямокутник має сторони рівної довжини, тобто є квадратом, на аркуші документа він значно менше. Таке співвідношення розмірів є наслідком встановлення режиму відображення MM_TEXT, що було зроблено в нашому додатку за замовчуванням. Якщо у вас є необхідність масштабувати зображення таким чином, щоб воно вписувалося в деякий заданий розмір, потрібно вибрати інший режим відображення. У табл. 6.1 перераховані режими відображення (mapping mode), які Windows надає у ваше розпорядження.

Таблиця 6.1

Режими відображення

Режим

Одиниця виміру

Координата

X

Y

ММ_НIENGLISH

0,001 дюйма

Зростає зліва направо

Зростає знизу вгору

MM_HIMETRIC

0,01 мм

Зростає зліва направо

Зростає знизу вгору

ММ_ISOTROPIC

Визначається користувачем

Визначається користувачем

Визначається користувачем

MM_LOENGLISH

0,01 дюйма

Зростає зліва направо

Зростає знизу вгору

MM_LOMETRIC

0,1 мм

Зростає зліва направо

Зростає знизу вгору

MM_TEXT

Піксель пристрою

Зростає зліва направо

Зростає зверху вниз

MM_TWIPS

1 / 1440 дюйма

Зростає зліва направо

Зростає знизу вгору

Робота з графікою в режимі MM_TEXT породжує певні проблеми, оскільки принтер і екран мають різні кількості елементів розкладання на сторінку. З графікою краще працювати в режимі MM_LOENGLISH, який використовує в якості одиниць розкладання соті частки дюйма, а не пікселі або точки принтера. Для того щоб в додатку Print1 використовувати режим відображення MM_LOENGLISH, замініть вставлений в функцію OnDraw() рядок наступними рядками:

pDC->SetMapMode(MM_LOENGLISH);

pDC->Rectangle(20, -20, 220, -220);

Перший оператор включає новий режим відображення у контекст пристрою. Другий задає малювання прямокутника з урахуванням напрямку осей нової системи координат. Від’ємні значення координат пояснюються тим, що для режиму MM_LOENGLISH вісь Х спрямована зліва направо, як і зазвичай в екранних системах координат, а вісь Y спрямована знизу вгору, а не навпаки. Більш того, за замовчуванням екранна система координат розташовується в правому нижньому квадранті загальноприйнятої декартової системи (Cartesian coordinate system), як це показано на рис. 6.6. Якщо встановлено режим накладення MM_LOENGLISH, то в роздруківці документа сторони прямокутника будуть мати довжину рівно по 2 дюйми. Це відбувається тому, що при виборі одиниці вимірювання в 1 / 100 дюйма задана довжина сторін прямокутника буде дорівнювати 200 одиницям.

Рис. 6.6. Положення системи координат в режимі відображення MM_LOENGLISH (за замовчуванням є похідним від загальноприйнятої декартової системи координат)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]