GDI-атрибуты контекста устройства
Значениями ряда атрибутов контекста устройства являются объекты GDI. Как отмечалось ранее, в вызовах методов, рисующих фигуры на экране, многие параметры не указываются, а берутся из атрибутов контекста устройства. Чтобы эти параметры отличались от установленных в контексте устройства по умолчанию, необходимо:
- Сохранить старое значение атрибута. Установить новое. Выполнить необходимые действия. Восстановить старое значение атрибута.
Последовательность этих действий иллюстрируется примером:
- void CMyView::OnDraw(CDC* pDC)
{
- CPen Pen;
if(Pen.CreatePen(PS_SOLID,2,RGB(0,0,0))
{
- // сохранение старого и установление нового значения атрибута
CPen* pOldPen=pDC->SelectObject(&Pen);
// выполнение необходимых действий
pDC->MoveTo(....); pDC->LineTo(....);
// восстановление старого значения атрибута
pDC->SelectObject(pOldPen);
}
Метод SelectObject в качестве результата возвращает указатель на текущее перо и делает текущим перо, указанное в качестве параметра метода.