Установка объектов рисования
Функции этой группы используются для установки объектов рисования, определяющих такие параметры рисования, как цвет и стиль линий, вид закрашивания, используемый шрифт и т.д. Основная функция установки графических объектов – SelectObject. Библиотека MFC в классе CDCопределяет пять функций для различных графических объектов: CPen* CDC::SelectObject(СРеп* рРеn) CBrush* CDC::SelectObject(CBrush* pBrush) virtual CFont* CDC::SelectObject(CFont* pFont) CBitmap* CDC::SelectObject(CBitmap* pBitmap) int CDC::SelectObject(CRgn* pRgn) Все эти функции, за исключением последней, в случае успешной установки возвращают указатель на графический объект соответствующего типа, ранее установленный для контекста устройства, и NULL – в противном случае. Причем указатель может указывать на временный объект и использоваться во время обработки одного сообщения Windows. Последняя версия функции SelectObjectпо своему действию аналогична функции SelectClipRgn. Битовые массивы можно устанавливать только для контекстов устройств в памяти. Причем один битовый массив не может быть установлен одновременно больше, чем для одного такого контекста. Битовый массив может быть либо монохромным, либо совместимым с контекстом устройства, т.е. созданным функцией СBitmap::Create Compatible Bitmap. Кроме создаваемых в приложениях графических объектов, существуют и предопределенные системные, которые также можно применять. Для таких объектов следует использовать функцию SelectStockObject, устанавливающую в контексте устройства системные графические объекты различных типов. Функция virtual CGdiObject* CDC::SelectStockObject(int nIndex) возвращает указатели на использованные ранее объекты в случае успешной замены и NULL – впротивном случае. Новый объект задается параметром nIndex, имеющим следующие значения:
Системные кисти DKGRAY_BRUSH, GRAY_BRUSH и LTGRAY_BRUSH могут использоваться только для окон, имеющих стили CS_HREDRAW и CS_VREDRAW. Связано это с тем, что базовые координаты системных кистей не могут настраиваться, и при изменении размеров или положения окон их содержимое может быть испорчено. ©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|