Partilhar via


Selecionando um objeto gráfico em um contexto de dispositivo

Este tópico se aplica ao uso de objetos gráficos no contexto de dispositivo de uma janela. Depois de criar um objeto de desenho, você deve selecioná-lo no contexto do dispositivo no lugar do objeto padrão armazenado lá:

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

Tempo de vida dos objetos gráficos

O objeto gráfico retornado por SelectObject é "temporário". Ou seja, ele será excluído pela função de membro OnIdle da classe CWinApp na próxima vez que o programa ficar ocioso. Desde que utilize o objeto retornado por SelectObject numa só função sem devolver o controlo para o ciclo principal de mensagens, não terá qualquer problema.

O que você quer saber mais sobre

Ver também

Objetos gráficos