Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3 семестр, WinAPI, MFC.pdf
Скачиваний:
388
Добавлен:
15.06.2014
Размер:
6.17 Mб
Скачать

В любой момент времени приложение может также определить расположение и размер окна, вызвав функцию:

void GetWindowRect(HWND hwnd, RECT FAR* lprc);

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

Контрольные вопросы

1.Что определяет (характеризует) стиль класса окна? Что определяет стиль окна?

2.Как задается стиль класса окна?

3.Как создать окно? Последовательность действий?

4.Что такое окно-владелец и подчиненное окно? Чем поведение подчиненного окна отличается от поведения обычного перекрывающегося окна?

5.Для чего чаще всего используются временные (всплывающие, popup) окна?

6.Какой внешний вид обычно имеют временные окна (назвать стиль класса)?

7.Где располагается начало системы координат для перекрывающихся и временных окон?

8.Для чего обычно используются дочерние окна?

9.Где располагается начало системы координат для дочерних окон?

10.Какой внешний вид обычно имеют дочерние окна (назвать стиль класса)?

11.Каковы особенности поведения дочерних окон?

12.Какое значение имеют понятия диапазон полосы прокрутки и ее текущее положение? Как можно изменять эти характеристики?

13.Какие сообщения приходят окну от полос просмотра?

14.При помощи какой функции можно определить системные метрики Windows?

15.Когда окно получает сообщение WM_SIZE и какие дополнительные параметры передаются окну вместе с этим сообщением?

16.Для чего предназначена функция GetClientRect?

17.Когда окно получает сообщение WM_MOVE и какие дополнительные параметры передаются окну вместе с этим сообщением?

18.Для чего предназначена функция GetWindowRect?

Графический интерфейс устройств(GDI).

Графический интерфейс устройства (GDI) — подсистема Windows , отвечающая за отображение графики (включая текст) на видеотерминалах и принтерах.

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

графические устройства отображения

Растровые устройства

Веторные устройства

(представление графических

(представление графических образов с

образов как шаблон точек )

помощью линий)

 

 

Видеоадаптеры

Матричные и

Плоттеры

лазерные принтеры

 

 

Таблица 1

Структура GDI

Функции

Примитивы

Различные аспекты

(режимы и атрибуты)

 

 

Функции, которые получают (или

Прямые (отрезки) и кривые.

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

создают) и освобождают (или

 

преобразования.

 

 

уничтожают) контекст устройства.

 

 

Функции, которые получают информацию о контексте устройства.

Функции рисования.

Функции, которые устанавливают и получают атрибуты контекста устройства.

Функции, которые работают с объектами GDI.

Таблица 2

Закрашенные области.

Метафайлы.

Битовые шаблоны (растровые

Регионы.

шаблоны, растровые образы).

 

Текст.

Пути.

 

 

Отсечение.

 

Палитры.

 

Печать.

Контекст устройства(device context, DC) - это структура, определяющая набор графических объектов и связанных с ними атрибутов и графических режимов, которые воздействуют на вывод.

Создание (получение) контекста устройств.

Общая функция для получения описателя контекста устройства - это функция

CreateDC

hdc = CreateDC (pszDriver, pszDevice, pszOutput, pData); [другиестрокипрограммы]

DeleteDC (hdc);

Получениеописателяконтекстаустройства, относящегосякклиентскойобластиокна

1. приобработкесообщенияWM_PAINT

hdc = BeginPaint (hwnd, &ps);

[другиестрокипрограммы] EndPaint (hwnd, &ps);

2. приобработкедругихсообщений

hdc = GetDC (hwnd); [другиестрокипрограммы] ReleaseDC (hwnd, hdc);

Получениеописателяконтекстаустройства, относящегосяковсемуокнупрограммы

hdc = GetWindowDC (hwnd); [другиестрокипрограммы] ReleaseDC (hwnd. hdc);

!Получениедругихописателейконтекстов.

Получениеописателя «информационногоконтекста»(information context), используя функциюCreateIC. Параметрытакиеже, какуфункцииCreateDC.

Полученияописателя«контекстапамяти» (memory device context) (приработес битовымиобразами).

hdcMem = CreateCompatibleDC (hdc); [другиестрокипрограммы] DeleteDC (hdcMem);

Получение описателя контекста метафайла, при создании метафайла.

hdcMeta = CreateMetaFile (pszFilename); [другиестрокипрограммы]

hmf = CloseMetaFile (hdcMeta);

Получение информации из контекста устройства.

С помощью функции GetDeviceCaps:

iValue = GetDeviceCaps (hdc, iIndex); // iIndex - один из 28 идентификаторов,

определенных в заголовочном файле

Получаемаяинформацияобустройствеотображения:

Размерыобластиотображения(высотаиширина);

Распознаваниеорганизациипамятивидеоадаптераичислоцветов, которыеонможет отобразить;

Функциидляполученияиизмененияконтекстаустройства:

Атрибут контекста

Функции для изменения

Функции для получения

устройства

 

 

 

 

 

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

SetMapMode

GetMapMode

 

 

GetWindowOrgEx

Началокоординатокна

SetViewportOrgEx

 

OffsetViewportOrgEx

 

 

 

 

Началокоординатобласти

SetViewportOrgEx

GetViewportOrgEx

вывода

OffsetViewportOrgEx

 

 

 

 

Протяженностьокна

SetWindowExtEx

GetWindowExtEx

 

SetMapMode

 

 

 

GetViewportExtEx

Протяженностьобласти

SetViewportExtEx

вывода

SetMapMode

 

 

ScaleViewportExtEx

 

 

 

 

Перо

SelectObject

SelectObject

 

 

 

Кисть

SelectObject

SelectObject

 

 

 

Шрифт

SelectObject

SelectObject

 

 

 

Битовыйобраз

SelectObject

SelectObject

 

 

 

Текущаяпозицияпера

MoveToEx

GetCurrentPositionEx

 

LineTo

 

 

PolylineTo

 

 

PolyBezierTo

 

 

 

 

Режимфона

SetBkMode

GetBkMode

 

 

 

Цветфона

SetBkColor

GetTextColor

 

 

 

Цветтекста

SetTextColor

GetTextColor

 

 

 

Режимрисования

SetROP2

GetROP2

 

 

 

Режимрастяжения

SetStretchBltMode

GetStretchBltMode

 

 

 

Режимзакрашивания

SetPolyFillMode

GetPolyFillMode

многоугольников

 

 

 

 

 

Межсимвольныйинтервал

SetTextCharacterExtra

GetTextCharacterExtra

 

 

 

Началокоординаткисти

SetBrushOrgEx

GetBrushOrgEx