CMDIChildWnd

Klasa CMDIChildWnd udostępnia funkcje systemu Windows wiele okien podrzędnych interfejsu (MDI) dokumentu, wraz z członków do zarządzania w oknie.

Okno potomne MDI wygląda podobny w oknie typowe ramki, z tym wyjątkiem, że wewnątrz okna ramki MDI, zamiast na pulpicie pojawi się okno podrzędnych MDI. Okno potomne MDI nie pasek menu własnej, ale zamiast udziałów menu okna ramki MDI. Ramach automatycznie zmienia menu Ramka MDI, aby reprezentować aktualnie aktywne okno potomne MDI.

Do utworzenia użytecznych okno potomne MDI dla aplikacji, pochodną klasy CMDIChildWnd. Dodać zmienne składowe klasy pochodnej do przechowywania danych specyficznych dla aplikacji. Funkcje składowe wdrożenie programu obsługi wiadomości i wiadomości mapę w klasie pochodnej, aby określić, co się dzieje, gdy wiadomości są skierowane do okna.

Istnieją trzy sposoby do skonstruowania okno potomne MDI:

Zanim zadzwonisz, Utwórz lub LoadFrame, muszą konstruowania obiektu okno ramek na sterty za pomocą operatora new C++. Przed wywołaniem metody tworzenia klasy okna można także zarejestrować funkcją globalną AfxRegisterWndClass do ustawiania stylów ikon i klasy dla ramki.

Funkcja Członkowskie Tworzenie aby przekazywać parametry tworzenia ramki jako argumenty natychmiastowe.

LoadFrame wymaga mniej argumentów niż Tworzenie, a zamiast tego pobiera większość jego wartości domyślne z zasobów, w tym ramki podpis, ikony, akcelerator tabeli i menu. Są dostępne przez LoadFrame, wszystkie zasoby te muszą mieć ten sam identyfikator zasobów (na przykład IDR_MAINFRAME).

Gdy obiekt CMDIChildWnd zawiera widoki i dokumentów, są one tworzone pośrednio przez ramy zamiast bezpośrednio przez programistę. Obiekt CDocTemplate orchestrates utworzenie ramki, tworzenie widoków zawierających i połączenia widoki do odpowiedniego dokumentu. Parametry konstruktora CDocTemplate określają CRuntimeClass trzech klas zaangażowanych (dokumentu, ramki i widoku). Obiekt CRuntimeClass jest używana w ramach do dynamicznego tworzenia nowych klatek jeśli określona przez użytkownika (na przykład za pomocą polecenia Nowy plik lub MDI okno Nowa).

Klasy okno ramek otrzymanych z CMDIChildWnd musi być zadeklarowana z DECLARE_DYNCREATE w celu powyższego mechanizmu RUNTIME_CLASS do poprawnej pracy.

Klasa CMDIChildWnd dziedziczy wiele z jego Domyślna implementacja z CFrameWnd. Szczegółową listę tych funkcji można znaleźć w opisie klasy CFrameWnd . Klasa CMDIChildWnd zawiera następujące funkcje dodatkowe:

Nie należy używać operatora usunąć C++ do zniszczenia w oknie ramki. Zamiast tego użyj CWnd::DestroyWindow . Wykonania CFrameWnd PostNcDestroy spowoduje usunięcie obiektu C++, gdy okno jest niszczony. Gdy użytkownik zamyka okno ramek, obsługi OnClose domyślne spowoduje wywołanie DestroyWindow.

Aby uzyskać więcej informacji o CMDIChildWnd, zobacz Ramki okna tematy w Visual C++ Programmer's Guide.

# include lt;afxwin.h>

Członkowie klasy |nbsp; Klasa podstawowa | Wykres hierarchii

Próbkinbsp; MFC Sample MDI | Próbki MFC MDIBIND | Próbki MFC MDIDOCVW | Próbki MFC SNAPVW

Zobacz też CWnd, CMDIFrameWnd

Index