Vztahy mezi objekty MFC
Pokud chcete usnadnit vytvoření dokumentu nebo zobrazení do perspektivy, zvažte spuštěný program: dokument, okno rámečku použité k zobrazení a zobrazení přidružené k dokumentu.
Dokument uchovává seznam zobrazení tohoto dokumentu a ukazatel na šablonu dokumentu, která dokument vytvořila.
Zobrazení uchovává ukazatel na dokument a je podřízeným oknem nadřazeného rámce.
Okno rámečku dokumentu uchovává ukazatel na aktuální aktivní zobrazení.
Šablona dokumentu uchovává seznam otevřených dokumentů.
Aplikace uchovává seznam svých šablon dokumentů.
Systém Windows sleduje všechna otevřená okna, aby jim mohl odesílat zprávy.
Tyto relace jsou vytvořeny během vytváření dokumentu nebo zobrazení. Následující tabulka ukazuje, jak objekty ve spuštěném programu mají přístup k jiným objektům. Libovolný objekt může získat ukazatel na objekt aplikace voláním globální funkce AfxGetApp.
Získání přístupu k jiným objektům ve vaší aplikaci
Z objektu | Přístup k jiným objektům |
---|---|
Dokument | Pro přístup k seznamu zobrazení dokumentu použijte GetFirstViewPosition a GetNextView . Pokud chcete získat šablonu dokumentu, zavolejte GetDocTemplate . |
Zobrazení | Pokud chcete dokument získat, zavolejte getDocument . Volání GetParentFrame získat okno rámce. |
Okno rámečku dokumentu | Volání GetActiveView získat aktuální zobrazení. Voláním metody GetActiveDocument získáte dokument připojený k aktuálnímu zobrazení. |
Okno s rámečkem MDI | Volání MDIGetActive získat aktuálně aktivní CMDIChildWnd. |
Okno rámečku má obvykle jedno zobrazení, ale někdy, stejně jako v rozdělených oknech, stejné okno rámečku obsahuje více zobrazení. Okno rámečku uchovává ukazatel na aktuálně aktivní zobrazení; ukazatel se aktualizuje pokaždé, když je aktivováno jiné zobrazení.
Poznámka
Ukazatel na okno hlavního rámce je uložen v m_pMainWnd členské proměnné objektu aplikace. Volání OnFileNew
v přepsání InitInstance
členské funkce CWinApp
sad m_pMainWnd za vás. Pokud nevoláte OnFileNew
, musíte nastavit hodnotu proměnné sami InitInstance
. (Aplikace komponent modelu COM (server) SDI nemusí nastavit proměnnou, pokud je /Embedding na příkazovém řádku.) Všimněte si, že m_pMainWnd je nyní členem třídy CWinThread
, nikoli CWinApp
.
Viz také
Šablony dokumentů a proces vytváření dokumentů/zobrazení
Vytváření šablon dokumentů
Vytvoření dokumentu nebo zobrazení
Vytváření nových dokumentů, oken a zobrazení