Widok
klasa CView
|
|
-
-
Widok w rozumieniu aplikacji typu
dokument/widok jest sposobem prezentacji danych dokumentu,
będącego obiektem klasy dziedziczącej z CDocument
-
Klasą obsługującą widoki w
MFC jest CView
-
Podstawowe cechy klasy CView:
-
daje podstawową funkcjonalność
widoków dokumentów
-
jest bazową klasą dla wszystkich obiektów
widoków dokumentów używanych w aplikacjach MFC opartych na
architekturze dokument/widok
-
w typowych aplikacjach typu
dokument/widok jest zawsze dołączony do dokładnie
jednego dokumentu, tylko w przypadku ręcznego wyłączenia
obsługi tej architektury generowany jest widok bez
dokumentu
Widok jest oknem
w systemie Windows (klasa CView dziedziczy z klasy CWnd)
- ma pełną funkcjonalność okna, przede
wszystkich jeśli chodzi o obsługę komunikatów
Windows
[początek strony]
[początek strony]
[początek strony]
-
-
Użytkownik za pośrednictwem
widoku zmienia coś w dokumencie
-
Ten widok po zmodyfikowaniu
dokumentu wywołuje CDocument::UpdateAllViews
-
Dla każdego istniejącego
widoku tego zmodyfikowanego dokumentu wywoływana jest CView::OnUpdate
-
w tej metodzie nie powinno być
kodu odrysowującego zmienione fragmenty widoku, zamiast
tego powinien zostać ustawiony obszar, który powinien
zostać odświeżony przy następnym
odrysowaniu widoku i to odrysowanie powinno zostać
wymuszone (np. przy użyciu metody CView::InvalidateRect)
-
Windows po otrzymaniu nakazu
wymuszenia odświeżenia widoku wyśle do niego
komunikat WM_PAINT
-
Widok po otrzymaniu komunikatu WM_PAINT
wywoła metodę CWnd::OnPaint
-
W standardowo nadpisanej dla widoku
metodzie CView::OnPaint zostanie utworzony kontekst urządzenia
(device context) do rysowania i zostanie przekazany jako
parametr do metody CView::OnDraw
-
W nadpisanej metodzie CView::OnDraw
musi się znaleźć kod odpowiedzialny za odrysowanie
widoku na wskazanym kontekście urządzenia
[początek strony]
-
-
Formularz (form-based)
-
CFormView (dziedzicząca
z CView) jako podstawowy widok
-
może to być aplikacja
w postaci dialogu (dialog-based application) lub CFormView
mogła zostać wybrana jako klasa bazowa dla widoku
-
przy pomocy edytora zasobów (resource
editor) można do tworzonej formy dodawać
kontrolki Windows, tak jak w przypadku projektowania dialogu
-
automatycznie dodana obsługa
danych modyfikowanych w tych kontrolkach (DDX - dialog data
exchange)
-
standardowo tworzone widoki w
postaci formularzy nie obsługują drukowania, żeby
umożliwić wydrukowanie takich widoków należy
nadpisać metodę CView::OnPrint
-
nie ma potrzeby nadpisywania CView::OnDraw
- na formularzu będą się znajdować tylko
kontrolki Windows, a te potrafią się same odrysować
-
automatycznie obsługiwane
jest skrolowanie formularza, jeśli jego rozmiar
przekracza rozmiar obszar roboczy okna
-
Przeglądarka WWW
-
CHtmlView (dziedzicząca
z CView) jako podstawowy widok
-
automatyczna pełna obsługa
przeglądarki WWW
-
wymaga co najmniej Windows 95,
NT 3.51 oraz zainstalowanego co najmniej Internet Explorer 4.0
-
inna jest obsługa
drukowania, nie obsługuje podglądu wydruku
-
Eksplorator
-
podział okna roboczego na
dwie części przy pomocy splitter
-
lewa część
zawiera drzewo (widok dziedziczący z CTreeView)
-
prawa część
zawiera listę (widok dziedziczący z CListView)
[początek strony]
-
CObject
- informacja w trakcie wykonywania, dynamiczne tworzenie, serializacja
CCmdTarget - obsługa
komunikatów Windows
CWnd - okno
CView
CCtrlView - widok będący
kontrolką Windows (control)
CTreeView - kontrolka drzewa (CTreeCtrl)
CListView - kontrolka listy (CListCtrl)
CEditView - zwykłe okno edycyjne
CRichEditView
- kontrolka edycyjna dla RTF (CRichEditCtrl)
CScrollView - automatyczna
obsługa skrolowania
CFormView
- formularze jako widoki
CHtmlView
- przeglądarka WWW
CRecordView
- rekord bazy danych ODBC
CDaoRecordView
- rekord bazy danych DAO
COleDBRecordView
- rekord OLE DB
[początek strony]
|