Wybieranie obiektu graficznego do kontekstu urządzenia

Ten temat dotyczy używania obiektów graficznych w kontekście urządzenia okna. Po utworzeniu obiektu rysunkowego należy wybrać go w kontekście urządzenia zamiast przechowywanego tam obiektu domyślnego:

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

Okres istnienia obiektów graficznych

Obiekt graficzny zwracany przez element SelectObject jest "tymczasowy". Oznacza to, że zostanie on usunięty przez funkcję składową OnIdle klasy CWinApp przy następnym czasie bezczynności programu. Tak długo, jak używasz obiektu zwróconego przez SelectObject w jednej funkcji bez zwracania kontrolki do głównej pętli komunikatów, nie będziesz mieć problemu.

Co chcesz dowiedzieć się więcej o

Zobacz też

Obiekty graficzne