Pochodne klasy okien
Okna można tworzyć bezpośrednio z CWnd
klasy , lub tworzyć nowe klasy okien z klasy CWnd
. W ten sposób zwykle tworzysz własne niestandardowe okna. Jednak większość okien używanych w programie ramowym jest zamiast tego tworzona na podstawie jednej z CWnd
klas -pochodnych okien ramowych dostarczanych przez MFC.
Klasy okien ramowych
CFrameWnd
Służy do okien ramowych SDI, które ramka pojedynczego dokumentu i jego widoku. Okno ramki jest zarówno głównym oknem ramki dla aplikacji, jak i oknem ramki dla bieżącego dokumentu.
CMDIFrameWnd
Używane jako główne okno ramki dla aplikacji MDI. Główne okno ramki to kontener dla wszystkich okien dokumentów MDI i udostępnia mu pasek menu. Okno ramki MDI to okno najwyższego poziomu wyświetlane na pulpicie.
CMDIChildWnd
Służy do otwierania poszczególnych dokumentów w głównym oknie ramki MDI. Każdy dokument i jego widok są oprawione przez okno ramki podrzędnej MDI zawarte w głównym oknie ramek MDI. Okno podrzędne MDI wygląda podobnie jak typowe okno ramki, ale znajduje się wewnątrz okna ramki MDI zamiast siedzieć na pulpicie. Jednak okno podrzędne MDI nie ma własnego paska menu. Musi on udostępnić pasek menu okna ramki MDI, który go zawiera.
Aby uzyskać więcej informacji, zobacz Okna ramowe.
Inne klasy okien pochodzące z CWnd
Oprócz okien ramowych, kilka innych głównych kategorii okien pochodzi z CWnd
:
Widoki:
Widoki są tworzone przy użyciu klasyCView
pochodnejCWnd
(lub jednej z jej klas pochodnych). Widok jest dołączony do dokumentu i działa jako pośrednik między dokumentem a użytkownikiem. Widok to okno podrzędne (a nie podrzędne mdI), które zazwyczaj wypełnia obszar klienta okna ramki SDI lub okna ramki podrzędnej MDI (lub tej części obszaru klienta nieuwzględnionego przez pasek narzędzi lub pasek stanu).Okna dialogowe:
Okna dialogowe są tworzone przy użyciu klasyCDialog
pochodnejCWnd
.Formularze:
Widoki formularzy oparte na zasobach szablonu okna dialogowego, takich jak okna dialogowe, są tworzone przy użyciu klasCFormView
,CRecordView
lubCDaoRecordView
.Kontrolki:
Kontrolki, takie jak przyciski, pola listy i pola kombi, są tworzone przy użyciu innych klas pochodzących zCWnd
klasy . Zobacz Tematy sterujące.Paski sterowania:
Okna podrzędne zawierające kontrolki. Przykłady obejmują paski narzędzi i paski stanu. Zobacz Paski sterowania.
Hierarchia klas okien
Zapoznaj się z wykresem hierarchii MFC w dokumentacji MFC. Widoki są objaśnione w architekturze dokumentu/widoku. Okna dialogowe są objaśnione w oknach dialogowych.
Tworzenie własnych klas okien specjalnego przeznaczenia
Oprócz klas okien udostępnianych przez bibliotekę klas może być konieczne specjalne okna podrzędne. Aby utworzyć takie okno, utwórz własną CWnd
klasę pochodną i utwórz je jako okno podrzędne ramki lub widoku. Należy pamiętać, że struktura zarządza zakresem obszaru klienta okna ramek dokumentu. Większość obszaru klienta jest zarządzana przez widok, ale inne okna, takie jak paski sterowania lub własne okna niestandardowe, mogą udostępniać obszar widokowi. Może być konieczne interakcja z mechanizmami w klasach CView
i CControlBar
pozycjonowanie okien podrzędnych w obszarze klienta okna ramowego.
Tworzenie okien omawia tworzenie obiektów okien i okien, którymi zarządzają.