Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.