Selezione di un oggetto grafico in un contesto di dispositivo

Questo argomento si applica all'uso di oggetti grafici nel contesto di dispositivo di una finestra. Dopo aver creato un oggetto di disegno, è necessario selezionarlo nel contesto del dispositivo al posto dell'oggetto predefinito archiviato in questa posizione:

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

Durata degli oggetti grafici

L'oggetto grafico restituito da SelectObject è "temporaneo". Ciò significa che verrà eliminato dalla funzione membro OnIdle della classe CWinApp la volta successiva che il programma ottiene il tempo di inattività. Se si usa l'oggetto restituito da SelectObject in una singola funzione senza restituire il controllo al ciclo di messaggi principale, non si avrà alcun problema.

Cosa vuoi sapere di più su

Vedi anche

Oggetti grafici