Программирование для IBM OS2

скачать форекс торрент

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


Прежде чем приступать к рисованию, приложение должно получить в свое распоряжение пространство отображения , которое называется Presentation Space (PS ).

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

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

Одним из важных атрибутов пространства отображения является размер области отображения. Например, если приложение получило пространство отображения для окна Client Window , оно может рисовать только во внутренней области этого онка. Если же получено пространство отображения для окна Frame Window , область рисования будет шире.

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

Первый способ используется только при обработке сообщения WM_PAINT . Он заключается в вызыве функции WinBeginPaint :

HPS hps; RECTL rec; . . . case WM_PAINT : { hps = WinBeginPaint (hWnd, NULLHANDLE, &rec); . . . // Вызов функций рисования . . . WinEndPaint (hps); return 0; }

Функция WinBeginPaint возвращает идентификатор пространства отображения, который в дальнейшем будет использоваться всеми функциями рисования.

Заметим, что перед тем как вернуть управление, обработчик сообщения WM_PAINT должен освободить полученное пространство отображения при помощи фукнции WinEndPaint .

Прототип функции WinBeginPaint приведен ниже:

HPS WinBeginPaint ( HWND hwnd, // идентификатор окна HPS hps, // идентификатор пространства отображения PRECTL prclPaint); // область ограничения

Через параметр hwnd функции WinBeginPaint передается идентификатор окна, для которого необходимо получить пространство отображения.


Начало  Назад  Вперед