Sdílet prostřednictvím


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í