Выбрать графический объект в контекст устройства
Этот раздел применим к использованию графических объектов в контексте устройства окна.После создайте объект-рисунок, необходимо выбрать его в контекст устройства вместо объекта по умолчанию, хранящихся там:
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 в одной функции без возврата элемента управления в главный цикл сообщений, не будет иметь никакой проблемы.