Visual C++ для начинающих


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 в качестве результата возвращает указатель на текущее перо и делает текущим перо, указанное в качестве параметра метода.



Содержание раздела