Поделиться через


Выбрать графический объект в контекст устройства

Этот раздел применим к использованию графических объектов в контексте устройства окна.После создайте объект-рисунок, необходимо выбрать его в контекст устройства вместо объекта по умолчанию, хранящихся там:

void CNewView::OnDraw(CDC* pDC)
{
   CPen penBlack;  // Construct it, then initialize
    if(penBlack.CreatePen(PS_SOLID, 2, RGB(0,0,0)))
    {
        // Select it into the device context
        // Save the old pen at the same time
        CPen* pOldPen = pDC->SelectObject(&penBlack);

        // Draw with the pen
        pDC->MoveTo(20,20);
        pDC->LineTo(40,40);

        // Restore the old pen to the device context
        pDC->SelectObject(pOldPen);
    }
    else
    {
        // Alert the user that resources are low
    }
}

Время существования графических объектов

Графический объект, возвращаемый SelectObject «является временным.» Иными словами, он будет удален OnIdle функцией-членом класса CWinApp в следующий раз, когда программа получает время простоя.Но необходимо использовать объект, возвращенный SelectObject в одной функции без возврата элемента управления в главный цикл сообщений, не будет иметь никакой проблемы.

ad8zd3da.collapse_all(ru-ru,VS.110).gifДополнительные сведения

См. также

Основные понятия

Графические объекты