Udostępnij za pośrednictwem


Konteksty urządzeń

Kontekst urządzenia to struktura danych systemu Windows zawierająca informacje o atrybutach rysunku urządzenia, takich jak wyświetlacz lub drukarka. Wszystkie wywołania rysunku są wykonywane za pośrednictwem obiektu kontekstu urządzenia, który hermetyzuje interfejsy API systemu Windows do rysowania linii, kształtów i tekstu. Konteksty urządzeń umożliwiają rysowanie niezależne od urządzenia w systemie Windows. Konteksty urządzenia mogą służyć do rysowania na ekranie, na drukarce lub w metapliku.

Obiekty CPaintDC hermetyzują typowy schemat systemu Windows, wywołując funkcję BeginPaint, rysując w kontekście urządzenia, a następnie wywołując funkcję EndPaint. Konstruktor CPaintDC wywołuje BeginPaint, a destruktor wywołuje EndPaint. Uproszczonym procesem jest utworzenie obiektu CDC , narysowanie CDC , a następnie zniszczenie obiektu. W ramach tego systemu, znaczna część nawet tego procesu jest zautomatyzowana. W szczególności funkcja OnDraw otrzymuje już przygotowany CPaintDC (za pośrednictwem OnPrepareDC), a Ty po prostu rysujesz w nim. Zostaje zniszczony przez ramę, a podstawowy kontekst urządzenia jest zwracany do systemu Windows po powrocie z wywołania funkcji OnDraw.

Obiekty CClientDC ułatwiają pracę z kontekstem urządzenia, który reprezentuje tylko obszar klienta okna. Konstruktor CClientDC wywołuje GetDC funkcję, a destruktor wywołuje ReleaseDC funkcję . Obiekty CWindowDC hermetyzują kontekst urządzenia, który reprezentuje całe okno, w tym jego ramkę.

Obiekty CMetaFileDC hermetyzują rysunek w metapliku systemu Windows. W przeciwieństwie do CPaintDC przekazanego do metody OnDraw, należy w tym przypadku samodzielnie wywołać metodę OnPrepareDC.

Rysowanie myszą

Większość rysunków w programie ramowym — a tym samym większość pracy kontekstowej urządzenia — jest wykonywana OnDraw w funkcji składowej widoku. Można jednak nadal używać obiektów kontekstu urządzenia do innych celów. Aby na przykład przekazać informacje zwrotne dotyczące śledzenia ruchu myszy w widoku, należy rysować bezpośrednio w widoku, nie czekając na wywołanie OnDraw.

W takim przypadku można użyć obiektu kontekstu urządzenia CClientDC , aby rysować bezpośrednio w widoku.

Co chcesz dowiedzieć się więcej o

Zobacz także

Obiekty okna