Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СКТ - 5,6сем.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
8.67 Mб
Скачать

Стандартные кисти, иконки, курсоры

При описании класса окна для всех окон класса можно задать цвет фона окна, курсор, иконку. В Windows предопределены следующие стандартные иконки:

Idi_Application соответствует приложению

Idi_Asterisk информационные сообщения

Idi_Exclamation для предупреждений

Idi_Hand сообщение об ошибках

Idi_Question для ввода информации

Например: WndClas.hIcon := LoadIcon(0, Idi_Application);

Предопределены следующие типы курсоров:

Idc_Arrow стандартная стрелка

Idc_Cross перекрестье

Idc_Ibeam для редактирования

Idc_Size, idc_SizeNesw, idc_SizeNS и т.д. стрелки

Idc_Wait песочные часы.

Например: WndClas.hCursor := LoadCursor(0, Idc_Arrow);

Шаблон заполнения фона окна может быть указан способом задания объекта кисть:

WndClas.hbrBackground := GetStockObject(white_Brush);

или

WndClas.hbrBackground := CreateSolidBrush(RGB(255,5,200));

Интерфейс графических устройств GDI

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

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

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

MyDC:=BeginPaint(MyWnd,MyPaint);

...

{ Работа с контекстом }

...

EndPaint(MyWnd, MyPaint);

Функция BeginPaint заполняет структуру типа TPaintStruct информацией, необходимой для работы функций отображения. (MyPaint – ссылка на структуру TPaintStruct).

Другим способом получения контекста является использование функции GetDC. Эта функция возвращает ссылку на контекст.

MyDC:=GetDC(MyWnd);

...

{ Работа с контекстом }

...

ReleaseDC(MyWnd,MyDC);

В этом случае, получаемый контекст определяет всю рабочую область экрана.

В Windows определены следующие средства для отображения: карандаш, кисть, текст.

  1. Карандаш используется для рисования прямых линий, окружностей, дуг; определяет цвет линии, ее ширину и стиль. Для использования карандаша сначала необходимо получить ссылку на него (тип данных hPen).

Var Pen : hPen;

Pen:=GetStockObject(White_Pen);

Получив таким образом ссылку на карандаш, выбираем его для текущего контекста.

SelectObject(MyDC,Pen);

Здесь использовался стандартный белый карандаш.

Для создания и использования собственного карандаша следует вызвать функцию CreatePen, указав ей стиль, ширину и цвет.

CreatePen(PenStyle, Width: Integer; Color: TColorRef): HPen;

PenStyle: Одна из констант ps_Solid, ps_Dash, ps_Dot, ps_DashDot, ps_DashDotDot, ps_Null или ps_InsideFrame.

Width: Шиpина пеpа (в логических единицах).

Затем необходимо выбрать карандаш функцией SelectObject(MyDC,Pen). По окончании отображения с помощью данного карандаша удалить его функцией DeleteObject.

  1. Кисть используется для заполнения областей внутри замкнутых фигур. Кисть выбирается также как и карандаш. Для создания собственной кисти, выполняющей сплошную закраску области, используется функция CreateSolidBrush.

CreateSolidBrush (Color: TColorRef): HBrush; создание сплошной кисти.

Color: Кисть типа TColorRef.

CreateHatchBrush (Index: Integer; Color: TColorRef): HBrush; создание штриховки.

Index: Одна из констант hs_BDiagonal, hs_Cross, hs_DiagCross, hs_FDiagonal, hs_Horizontal или hs_Vertical.

  1. Цвет букв текста можно изменить при помощи функции:

SetTextColor(MyDC, RGB(255,0,255));

Режим фона может принимать одно из двух значений: opaque (непроницаемый) и transparent (прозрачный). Режим фона устанавливается при вызове:

SetBkMode(MyDC,TRANSPARENT); или цвет фона текста можно изменить:

SetBkColor(MyDC,RGB(0,255,255));

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