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ż
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla