img/mfc2.jpg

CView


Opis

Klasa CView zapewnia podstawowe mechanizmy funkcjonowania wszystkich definiowanych przez użytkownika klas widoków. Widok jest bezpośrednio związany z dokumentem i pełni rolę łącznika dokumentu z użytkownikiem. Widok przedstawia dokument na ekarnie umożliwiając jednocześnie przyjmowanie poleceń od użytkownika.

Widok jest zwykle obiektem potomnym w stosunku do obiektu okna-ramki typu CFrameWnd. Jest jak najbardziej możliwe wykorzystywanie kilku widoków w ramach jednego okna-ramki.

Widok może być powiązany z tylko jednym dokumentem, natomiast każdy dokument może mieć wiele widoków. Każdy widok może np. pokazywać inne cechy dokumenu - dane, wykresy itp.

Widok może być odpowiedzialny za przejmowanie obsługi różnych typów komunikatów: związanych z myszą, klawiaturą, poleceniami z menu czy paska narzędzi, a także obsługą mechanizmów typu drag & drop. Jeśli widok nie obsługuje danego zdarzenia, przesyła je dalej do dokumentu.

Widok jest odpowiedzialny za prezentowanie informacji zawartych w dokumencie, lecz nie za ich przechowywanie (robi to klasa dokumentu). Obiekt widoku może korzystać z pól dokumentu bezpośrednio lub za pośrednictwem utworzonych w tym celu metod.

Gdy dane przechowywane w dokumencie ulegają zmianie, widok odpowiedzialny za prezentację dokumentu wywołuje zwykle metodę CDocument:UpdateAllViews(), która informuje inne widoki danego dokumentu o konieczności dokonania zmian prezentowanej zawartości wywołując ich metodę OnUpdate(). Domyślna implementacja tej metody unieważnia cały obszar widoku.

Aby skutecznie używać klasy CView należy utworzyć klasę dziedziczącą po niej i pokryć metodę OnDraw(). Metoda ta może być także użyta do obsługi wydruku i podglądu wydruku.

Widok reaguje na komunikaty związane z obsługą pasków przewijania. Obsługę przewijania dokumentu można zrealizować pokrywając metody OnHScrol() i OnVScroll(). Można także wykorzystać specjalnie w tym celu utworzoną klasę dziedziczącą po CView: CScrollView. Poza klasą CScrollView biblioteka MFC udostępnia również inne klasy dziedziczące:


Klasa CView posiada również dziedziczącą klasę CPreviewView, która jest stosowana do obsługi podglądu wydruku.

Atrybuty

Brak

Metody

Konstruowanie

Metody Opis
CViewTworzy obiekt typu CView.

Operacje

Metody Opis
DoPreparePrintingWyświetla okno dialogowe wydruku, tworzy kontekst drukarki.
GetDocumentZwraca dokument związany z widokiem.

Metody do pokrycia w klasach dziedziczących

Metody Opis
IsSelectedSprawdza czy pozycja dokumentu jest wybrana (OLE).
OnActivateViewWywoływana automatycznie kiedy widok uzyskuje aktywność.
OnActivateFrameWywoływana automatycznie gdy okno zawierające widok jest aktywowane lub traci aktywność.
OnBeginPrintingWywoływana przy rozpoczęciu drukowania.
OnDrawWywoływana w celu narysowania widoku. Implementacja wymagana.
OnEndPrintingWywoływana przy zakończeniu wydruku.
OnEndPrintPreviewWywoływana przy zakończeniu podglądu wydruku.
OnPrepareDCWywoływana przed wywołaniem OnDraw() lub OnPrint().
OnPreparePrintingWywoływana zanim dokument jest drukowany lub przed podglądem wydruku.
OnPrintWywoływana w celu wydrukowania lub podglądu wydruku dla dokumentu.
OnUpdateWywoływana w celu poinformowania widoku o zaistnieniu zmian w dokumencie.

Metody do pokrycia w klasach dziedziczących - obsługa OLE

Metody
OnDragEnter
OnDragLeave
OnDragOver
OnDrop
OnDropEx
OnDragScroll
OnInitialUpdate
OnScrollBy
OnScroll


Zobacz także

CWnd, CFrameWnd

Hierarchia

img/hr_cview.gif