Konteksty urządzenia

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, do drukarki lub do metapliku.

Obiekty CPaintDC hermetyzują wspólny idiom systemu Windows, wywołując BeginPaint funkcję, a następnie rysując w kontekście urządzenia, a następnie wywołując EndPaint funkcję. Konstruktor CPaintDC wywołuje BeginPaint metodę , a destruktor wywołuje metodę EndPaint. Uproszczonym procesem jest utworzenie obiektu CDC , narysowanie CDC , a następnie zniszczenie obiektu. W ramach większość tego procesu jest zautomatyzowana. W szczególności funkcja OnDraw jest przekazywana już przygotowana CPaintDC (za pośrednictwem OnPrepareDC), a po prostu wciągniesz ją do niej. Jest on niszczony przez platformę, a podstawowy kontekst urządzenia jest zwalniany z systemu Windows po powrocie z wywołania funkcji OnDraw .

Obiekty CClientDC hermetyzują 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 przekazanego CPaintDC do OnDrawmetody , 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ć opinię na temat śledzenia ruchu myszy w widoku, należy narysować bezpośrednio w widoku bez oczekiwania na OnDraw wywołanie.

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 też

Obiekty okna