Compartir a través de


Seleccionar un objeto gráfico en un contexto de dispositivo

Este tema se aplica al uso de objetos gráficos en el contexto del dispositivo de una ventana. Después de crear un objeto de dibujo, debe seleccionarlo en el contexto del dispositivo en lugar del objeto predeterminado almacenado allí:

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
   }
}

Duración de los objetos gráficos

El objeto gráfico devuelto por SelectObject es "temporal". Es decir, se eliminará mediante la función miembro OnIdle de la clase CWinApp la próxima vez que el programa obtenga tiempo de inactividad. Siempre que use el objeto devuelto por SelectObject en una sola función sin devolver el control al bucle de mensajes principal, no tendrá ningún problema.

Qué más quieres saber

Consulte también

Objetos gráficos