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

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

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 одной функцией, без возврата элемента управления в основной цикл сообщений, у вас не будет проблем.

Что вы хотите узнать больше о

См. также

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