Selecionando um objeto elemento gráfico em um contexto para dispositivo
Este tópico se aplica ao uso elemento gráfico objetos no contexto de dispositivo da janela.Depois de Crie um objeto de desenho, você deve selecioná-lo no contexto de dispositivo no lugar do objeto padrão armazenado nesse local:
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 de objetos gráficos
O objeto elemento gráfico retornado por SelecionarObjeto é "temporário". Ou seja, ele será excluído pelo OnIdle função de membro de classe CWinApp na próxima vez que o programa obtém o time ocioso. Desde que você use o objeto retornado por SelectObject uma única função sem retornar controle para o loop de mensagem principal, você terá sem problemas.