Způsob použití třídy CFormView v rozhraní jednoho dokumentu (SDI) a více dokumentů (MDI) rozhraní aplikací

Překlady článku Překlady článku
ID článku: 98598 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Poznámka: Microsoft Visual C++ .NET (2002) podporuje model spravovaný kód, který je součástí Microsoft .NET Framework a Nespravovaná nativní kód modelu Microsoft Windows. Informace v tomto článku platí pouze pro nespravované kód jazyka C++.

Poznámka: Microsoft Visual C++ 2005 podporuje model spravovaný kód, který je součástí Microsoft .NET Framework a Nespravovaná nativní kód modelu Microsoft Windows.

Souhrn

Třída CFormView poskytuje pohodlný způsob, jak umístit ovládací prvky do zobrazení je založen na šabloně pole dialogové okno. Obecný postup použít CFormView popsaným v dokumentaci pro třídu a je znázorněno v VIEWEX a CHKBOOK aplikace ukázkové, dodané s Microsoft Foundation Classes (MFC) verze 2.x a výše. Však tyto aplikace není ukazují provádění počáteční velikost okna rámeček být stejné jako počáteční velikost formuláře.

Následující část uvádí kroky nutné k podpoře vytváření rozhraní jednoho dokumentu (SDI) nebo více aplikací rozhraní (MDI) dokumentu na základě CFormView pro změnu velikosti okna počáteční rámec kolem formuláře, změna stylu rámce a zavřením dokument MDI použití tlačítka ve formuláři.

Další informace

Následující kroky popisují vytvoření AppWizard MFC aplikace pomocí jako výchozí zobrazení CFormView:
  1. Použít AppWizard generovat aplikace SDI nebo MDI. Tato šablona pole dialogové okno vloží správné styly nastavené pro soubor zdrojů do projektu.

    Visual Studio 6.0:

    V kroku 6 AppWizard vyberte třídu zobrazení. V poli se seznamem základní třídy vyberte CFormView určit CFormView jako základní třídy.

    Visual Studio .NET nebo Visual Studio 2005:

    V kroku 1 AppWizard vyberte Vygenerované třídy. V poli se seznamem základní třídy vyberte CFormView určit CFormView jako základní třídy.
  2. Přepsat členské funkce OnUpdate() a jak je uvedeno v dokumentaci k CFormView aktualizace proměnné členů pomocí dat aktuální dokument a dialogové okno dat provést volání UpdateData() exchange (DDX).

    Poznámka: UpdateData není virtuální a volání základní třídy zajišťuje, že se nazývá DoDataExchange prostřednictvím standardní polymorfie odvozené třídy. Stavy CFormView dokumentaci k volání, není přepsat UpdateData.
  3. Pokud chcete nastavit počáteční velikost zobrazení formuláře přepsat funkci OnInitialUpdate(). Na text poskytuje další informace o tomto kroku je mírně odlišné aplikace SDI nebo MDI.

Změna velikosti hlavního SDI rámeček okolo CFormView

Chcete-li změnit velikost hlavní rámec aplikace SDI (používající CFormView jako jeho zobrazení třídy) být příslušná velikost formuláře navržena v Studio aplikace, přepsat funkci OnInitialUpdate() vaší třídy odvozené od CFormView, způsobem:
      void CMyFormView::OnInitialUpdate()
      {
         CFormView::OnInitialUpdate();
         GetParentFrame()->RecalcLayout();
         ResizeParentToFit(); // default argument is TRUE
      }
				
The ResizeParentToFit() funkce nezabrání formulář Změna velikosti, pokud uživatel změní velikost hlavní rámec aplikace (posuvníky jsou přidány automaticky podle potřeby). Chcete-li změnit styl okna rámce, které je nadřazený zobrazení formuláře, můžete přepsat funkci PreCreateWindow() v CMainFrame třídy generovaných AppWizard. Například chcete-li odebrat styl WS_THICKFRAME a uživateli zabránit ve změně velikosti okna, deklarovat PreCreateWindow() MAINFRM.H a přidejte následující kód MAINFRM.CPP:
      BOOL CMainFrame::PreCreateWindow(CREATESTRUCT &cs)
      {
         cs.style &= ~WS_THICKFRAME;
         return CFrameWnd::PreCreateWindow(cs);
      }
				

Změna velikosti rámce podřízené MDI okolo CFormView

Proces změny velikosti rámce podřízené MDI je podobná změna velikosti hlavní rámec aplikace SDI popsaným výše. Volání RecalcLayout() však není vyžadován.

Změnit velikost rámce podřízené MDI kolem zobrazení formuláře, přepsat funkci OnInitialUpdate() vaší třídy odvozené od CFormView způsobem:
      void CMDIFormView::OnInitialUpdate()
      {
         CFormView::OnInitialUpdate();
         ResizeParentToFit(); // Default argument is TRUE.
      }
				
Pokud aplikace přepíše výchozí argument funkce ResizeParentToFit(), podstatě stejné důsledky dojít jako u aplikace SDI popsaným výše. Kromě toho podřízené okno může být příliš velký pro ohraničujícím hlavní rámec MDI nebo pro celou obrazovku.

Chcete-li změnit styl rámce podřízené MDI (například odebrat styl WS_THICKFRAME, takže uživatel nemůže změnit velikost okna), odvodit třídu okna podřízené MDI a přepsat funkci PreCreateWindow jako znázorněn v příkladu výše SDI.

Zavřením formuláře MDI s tlačítka

Vytvořit přidat tlačítko na formuláři zavře dokument CFormView třídy popisovač zprávy pro zprávu BN_CLICKED. Zkontrolujte, zda tlačítka v CFormView nemají výchozí IDOK nebo IDCANCEL identifikátorů. Pokud ano, pak nesprávné položky v mapě zprávu a nesprávná funkce tlačítek bude vytvořen.

Jakmile je zpráva popisovač v místě, můžete simulovat příkaz Zavřít v souboru nabídce s následujícím kódem:
      void CMyForm::OnClickedButton1()
      {
         PostMessage(WM_COMMAND, ID_FILE_CLOSE);
      }
				
Tato metoda zavření formuláře vyzve uživatele k uložení souboru, pokud IsModified() členské funkce spojené s dokumentem vrátí hodnotu PRAVDA.

Vlastnosti

ID článku: 98598 - Poslední aktualizace: 5. ledna 2006 - Revize: 4.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Foundation Class Library 4.2 na těchto platformách
    • Microsoft Visual C++ 1.0 Professional Edition
    • Microsoft Visual C++ 1.5 Professional Edition
    • Microsoft Visual C++ 1.51
    • Microsoft Visual C++ 1.52 Professional Edition
    • Microsoft Visual C++ 1.0 Professional Edition
    • Microsoft Visual C++ 2.0 Professional Edition
    • Microsoft Visual C++ 2.1
    • Microsoft Visual C++ 5.0 Standard Edition
    • Microsoft Visual C++ 6.0 Service Pack 5
    • Microsoft Visual C++ .NET 2003 Standard Edition
    • Microsoft Visual C++ .NET 2002 Standard Edition
    • Microsoft Visual C++ 2005 Express Edition
Klíčová slova: 
kbmt kbdocview kbhowto kbmdi kbuidesign KB98598 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:98598

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com