Auswählen eines Grafikobjekts für einen Gerätekontext

Dieses Thema bezieht sich auf die Verwendung von Grafikobjekten im Gerätekontext eines Fensters. Nachdem Sie ein Zeichnungsobjekt erstellt haben, müssen Sie es anstelle des dort gespeicherten Standardobjekts im Gerätekontext auswählen:

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

Lebensdauer von Grafikobjekten

Das von SelectObject zurückgegebene Grafikobjekt ist "temporär". Das heißt, es wird von der OnIdle-Memberfunktion der Klasse CWinApp gelöscht, wenn das Programm das nächste Mal im Leerlauf ist. Solange Sie das von einer einzelnen Funktion zurückgegebene SelectObject Objekt verwenden, ohne die Steuerung an die Standard Nachrichtenschleife zurückzugeben, haben Sie kein Problem.

Was möchten Sie mehr über

Siehe auch

Grafikobjekte