Глава 25. Графический интерфейс устройства_______________________777

атрибуты так же могут быть восстановлены вызовом соответствующих им методов восстановления: RestoreFont (), RestorePalette () и т. д. Следующий фрагмент кода демонстрирует пример того, как это может быть сделано. Для упрощения аргументы конструктора здесь опущены.

// Создание объектов GDI TFont NewFontI(...), NewFont2(...);

TPalette NewPalette(...);

// Выбор объектов в контексте dc.SelectObject(NewFontI) ;

dc.Se'lectObject (NewPalette) ;

// Восстановление старого шрифта dc.RestoreFont() ;

// Выбор третьего шрифта dc.SelectObject(NewFont2);

// Восстановление всего контекста dc.RestoreObjects(); *

Выбор объектов GDI в контексте устройства — достаточно частое действие. Чаще всего, однако, ваши программы будут заниматься выбором экземпляров наиболее популярных объектов GDI — пера (pen) и кисти (brush).

! Предупреждение

В большинстве случаев ваши программы создают объекты GDI в стеке; они уничтожаются, как только оказываются вне области видимости. Однако, если объекты GDI создаются в куче (т. е. с использованием операции new о), очень важно помнить об их удалении. Обычно OWL выполняет эту задачу, но если вы разместили ресурсы GDI в куче и затем их не освободили, это может вызвать довольно обильную утечку памяти в системе. Поскольку такие ресурсы, как шрифты, палитры, перья и кисти выделяются из одного ограниченного пула памяти, очень важно помнить об их высвобождении после завершения работы с ними. Если программа завершится без их высвобождения, Windows 95 не будет иметь никакой возможности вернуть в свое распоряжение память, которую они занимали.

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

Класс треп — выбираемый класс. Как уже сказано, это означает, что контекст устройства имеет атрибут пера, который он использует при рисовании