Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Янг Майкл Дж. -> "Visual С++ 6. Полное руководство: В 2 т.(том2)" -> 58

Visual С++ 6. Полное руководство: В 2 т.(том2) - Янг Майкл Дж.

Янг Майкл Дж. Visual С++ 6. Полное руководство: В 2 т.(том2) — Бином, 2006. — 530 c.
Скачать (прямая ссылка): vicualcc2006t2.djvu
Предыдущая << 1 .. 52 53 54 55 56 57 < 58 > 59 60 61 62 63 64 .. 173 >> Следующая

Кисть можно инициализировать так, чтобы она окрашивала однородным цветом внутреннюю область фигур, вызывая функцию CreateSoIidBrush класса CBrush с параметром crColor, описывающим цвет заливки. Можно задать любой цвет. Если присвоенный цвет не является чистым, то Windows генерирует псевдополутоновый цвет (полученный имитацией полутонов).
BOOL CreateSolidBrush (COLORREF crColor);
Кроме того, для заливки внутренней области фигур можно инициализировать кисть, вызвав функцию CreateHatchBrush класса Cbrusn.
BOOL CreateHatchBrush (int nlndex, COLORREF crColor);
Параметр nlndex задает узор (рис. 19.2). Параметр crColor описывает цвет линий штриховки.
HS BDIAGONAL
HS CROSS
HS DIAGCROSS
HS FDIAGONAL
HS_HORISONTAL HS VERTICAL -
Рис. 19.2. Значения, которые присваиваются параметру CreateHatcbBru.sh для инициализации кисти со штриховкой
Функция CreatePatternBrush класса CBrush вызывает кисть для заполнения фигуры заданным узором.
300L CreatePatternBrush (CBitmap* pBitmap);
Параметр pBtimap является указателем на объект растрового изображения. Если фигура рисуется с помощью кисти, то ее внутренняя область полностью заполняется копиями растрового изображения, размещаемыми одна возле другой. Объект растрового изображения создается и инициализируется по методике, описанной в гл. 20. Задайте размер растрового изображения равным 8x8 пикселей.
Если растровое изображение монохромное, то Windows использует текущие цвета текста и фона.
Примечание
Объект кисть (как и перо) можно инициализировать при создании, передавая конструктору CBrush соответствующие параметры. Информация об этом - в следующих разделах справочной системы: Visual C++ Documentation, Reference, Microsoft Foundation Class Library and Templates, Microsoft Foundation dass Library, Class Library Reference, CBrush.
Как только перо пли кисть инициализированы, их выбирают в объекте контекста устройства с помощью функции SeleetObject класса CDC. Для выбора пера вызовите функцию SeiectObject.
СРеп» SeleetObject (СРеп* рреп);
гле рРеп — указатель на объект-перо. Функция SeleetObject возвращает указатель на предыдущий объект-перо, выбранный в объекте контекста устройства. Если перо ранее не выбиралось, это будет временный объект пера, заданного по умолчанию. Дня выбора кисти вызывается функция SeleetObject.
CBrusn" SeleetObject (CBrush* pBrush);
где pBrush — указатель на объект-кисть. Функция SeleetObject возвращает указатель на ранее выбранную кисть. Если она ранее не выбиралась, то это будет временный объект для заданной по умолчанию кисти.
При вызове функции SeleetObject для выбора пера или кисти нужно сохранить возвращаемый указатель. После вызова графических функций для отображения выводимой информации с использованием пера или кисти (что описано далее в этой же главе) удалите перо или кисть из объекта контекста устройства и вызовите функцию SeleetObject для выбора предыдущего объекта.
Совет
Перо или кисть необходимо удалить из объекта контекста устройства, чтобы объект контекста устройства не хранил некорректный дескриптор после удаления объекта. При инициализации пера или кисти Windows добавляет дескриптор, сохраняемый внутри объекта. При выборе пера или кисти объект контекста устройства также сохраняет этот дескриптор. Когда объекты выходят за пределы области видимости или удаляются, деструктор объекта уничтожает дескриптор. Однако этот шаг не нужно выполнять, если объект контекста устройства удаляется до удаления объекта пера или кисти.
Пример функции onDraw иллюстрирует описанные действия.
void CMyView::OnDraw(CDC* pDC) {
CBrush Brush; // объявить объект кисть;
СРеп Pen; // объявить объект перо;
CBrush *PtrOldBrush; // сохранить указатель на предыдущую
// кисть;
СРеп *PtrOldPen; // сохранить указатель на предыдущее
// перо;
// инициализировать сплошное синее перо шириной 3 пикселя: Pen.CreatePen (PS_SOLID, 3, RGB (0, 0, 255));
// инициализировать сплошную желтую кисть: Brush.CreateSolidBrush (RGB (255, 255, 0)) ;
// передать перо объекту контекста устройства: Ptr.OldPen = pDC->SelectObject (&Pen);
// передать кисть объекту контекста устройства: Ptr.OldBrush = pDC->SelectObject (SBrush);
// установить любые требуемые атрибуты рисования ...
// вызвать функции рисования для создания графического //вывода ...
// (линии и границы будут синими, внутренняя площадь фигур // будет желтой);
// удалить новые перо и кисть из объекта контекста устройства: pDC -> SelectObject (Ptr.OldPen); pDC -> SelectObject (Ptr.OldBrush);
Установка графических атрибутов
При первичном создании объект контекста устройства имеет набор стандартных атрибутов, определяющих работу функций рисования. Класс сое содержит функции для изменения этих атрибутов, а также получения их текущих значений. В табл. 19.4 приведены функции и атрибуты рисования, наиболее подходящие для средств, рассмотренных в данной главе.
Таблица 19.4. Основные атрибуты рисования
Атрибуты Стандартное Функции, использу- Воздействуют на
рисования значение емые для установки функции рисования
Предыдущая << 1 .. 52 53 54 55 56 57 < 58 > 59 60 61 62 63 64 .. 173 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100