将图形对象选入设备上下文

本主题适用于在窗口的设备上下文中使用图形对象。 创建绘图对象后,必须将其选入设备上下文,以取代存储在其中的默认对象:

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 返回的图形对象是“临时的”。也就是说,下次程序空闲时,类 CWinAppOnIdle 成员函数将删除该图形对象。 只要使用单一函数中的 SelectObject 返回的对象,而不将控件返回到主消息循环,就不会出现任何问题。

你想进一步了解什么

另请参阅

图形对象