Керування графічним виводом.

Ресурси програм.

Кожна програма володіє низкою стандартних ресурсів або ресурсів користувача. Ресурсами програми називаються масиви даних які розробник може добавити у модуль, що виконується. До стандартних ресурсів відносяться:

- Акселератори (accelerators) – структури даних, що містять списки гарячих клавіш.

- Бітові масиви (bitmaps) – піктограми, що відображаються на елементах керування.

- Курсори (cursors) – бітові масиви, що використовуються як вказівники миші.

- Значки (icons) – бітові масиви, що використовуються для візуалізації різноманітних об’єктів у системі та програмі.

- Шаблони діалогів (dialogs) – заготовки типових діалогових вікон з влаштованими засобами керування.

- Шаблони меню (menus) – заготовки для створення меню програми.

- Шаблони панелей інструментів (toolbars) – заготовки для створення панелей інструментів користувача.

- Таблиці символьних рядків (string tables) – списки статичних символьних масивів (макровизначень), що використовуються програмою.

Ресурси зберігаються в структурованому вигляді у файлі та компілюються окремо. Вони можуть використовуватися різними програмами.

Доступ до ресурсів відбувається за числовими або рядковими ідентифікаторами.

ОС Windows створювалася як графічна ОС. Вона забезпечує універсальність представлення інформації як на екрані, на друкарці так і на інших пристроях виводу, використовуючи для цього одні і ті самі примітиви відображення. Графічний вивід у Windows швидше за все зв’язаний з вікном чим з фізичним пристроєм.

Графічні об’єкти. Для відображення інформації в Windows використовуються наступні графічні об’єкти:

- бітові масиви (bitmaps) – прямокутні растрові зображення;

- олівці (pens) – задають параметри малювання ліній (товщина, колір та стиль);

- пензель (brushes) – задають параметри заливання замкнутих контурів (колір та стиль);

- шрифти (fonts) – задають параметри виводу тексту (ім’я шрифту, розмір та ін.);

- регіони (regions) – ділянки вікна правильної форми (прямокутник, еліпс) для виконання операцій в їх межах;

- логічні палітри (logical pallets) – забезпечують інтерфейс між програмою та кольоровим пристроєм виводу;

- контури (paths) – використовуються для означення контурів складних фігур.

Вивід графіки в Windows апаратно-незалежний. Прив’язку даних, що виводяться до конкретного пристрою виконує драйвер цього пристрою. Для реалізації апаратно-незалежної ідеології виводу використовуються спеціальні структури, що називаються контекстами пристроїв.

Контекст пристрою. Контекст пристрою – це структура, що визначає набір властивих йому графічних об’єктів (розглядалися вище) та зв’язаних з ними атрибутів та графічних режимів, які впливають на вивід.

У Win32 API визначено чотири типи контекстів пристроїв:

- екрану;

- друкарки;

- об’єктів в пам’яті (без безпосереднього виводу на екран);

- інформаційний (для отримання даних про пристрій).

З контекстом пристрою програма може виконувати наступні операції:

- перерахунок графічних об’єктів;

- встановлення нових графічних об’єктів;

- знищення графічних об’єктів;

- збереження та відновлення графічних об’єктів, їх атрибутів та графічних режимів.

Контекст пристрою також використовується для завершення довготривалих графічний операцій, що виконуються іншим процесом.

Графічні режими. Графічні режими використовуються для встановлення способів змішування кольорів, місця, параметрів виводу та ін. ОС підтримуються п’ять графічних режимів:

- налаштування фону – визначає спосіб змішування кольорів фону текстових об’єктів та растрових зображень, фону поля виводу (вікна чи екрану);

- відображення (промальовування) – визначає спосіб змішування кольорів олівців, пензлів, текстових об’єктів та растрових об’єктів з фоном поля виводу.

- масштабування – визначає спосіб перетворення логічних координат при виводі у вікна, на екран або друкарку;

- заливання контурів – визначає спосіб використання пензлів при заливанні складних контурів;

- стиску – визначає спосіб перетворення кольорів растрових зображень при їх збільшуванні (зменшуванні).

Шрифти. ОС Windows підтримує роботу зі шрифтами наступних типів:

- растрові (кожен символ зберігається як бітовий масив);

- векторні (для символу зберігається ламана лінія, що описує його контури);

- TrueType (містять інформацію про контурну лінію символу та способи масштабування).

Растрові шрифти швидко відображаються але погано мастабуються. Векторні, навпаки, добре мастабуються але повільно відображаються.