Verwendung die CFormView-Klasse in single Document Interface (SDI) und mehrere Dokument (Interface-) Anwendungen

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 98598 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Hinweis: Microsoft Visual C++ .NET (2002) unterstützt sowohl das verwaltete Codemodell aus dem Microsoft .NET Framework als auch das nicht verwaltete Codemodell, das in Microsoft Windows integriert ist. Die Informationen in diesem Artikel beziehen sich nur auf nicht verwalteten Visual C++-Code.

Hinweis: Microsoft Visual C++ 2005 unterstützt das verwaltete Codemodell, das von Microsoft .NET Framework bereitgestellt wird und nicht verwaltete systemeigene Microsoft Windows-Codemodell.

Zusammenfassung

Die CFormView-Klasse stellt eine bequeme Methode, um Steuerelemente in einer Ansicht platzieren, das auf ein Dialogfeld im Feld Vorlage basiert. Das allgemeine Verfahren mit einer CFormView ist in der Dokumentation für die Klasse beschrieben und ist in den Beispielanwendungen VIEWEX und CHKBOOK mit Microsoft Foundation Classes (MFC) Versionen 2.x und oben dargestellt. Diese Anwendungen jedoch nicht veranschaulichen machen die ursprüngliche Größe der der Rahmenfenster, damit die ursprüngliche Größe des Formulars identisch sein.

Im folgende Abschnitt werden die zur Unterstützung beim Erstellen eine einfache Dokumentschnittstelle (SDI) oder basierend auf einer CFormView Größe das erste Frame-Fenster um das Formular herum, Ändern der Formatvorlage des Rahmens und schließen ein MDI-Dokument mit einer Schaltfläche im Formular Anwendung der multiple Document Interface (MDI) erforderlichen Schritte aufgeführt.

Weitere Informationen

Die folgenden Schritte beschrieben, wie eine MFC-Anwendungs-Assistent erstellt Anwendung mithilfe der CFormView als Standardansicht:
  1. Verwenden Sie die Anwendungs-Assistent, um eine SDI- oder MDI-Anwendung zu generieren. Dadurch wird ein Dialogfeld im Feld Vorlage mit den richtigen Formatvorlagen festlegen für Ressourcendatei des Projekts eingefügt.

    visual Studio 6.0 :

    Wählen Sie unter Schritt 6 von der Anwendungs-Assistent die anzeigen-Klasse. Klicken Sie im Kombinationsfeld Basisklasse die Option CFormView als die Basisklasse CFormView angeben.

    visual Studio .NET oder Visual Studio 2005 :

    Wählen Sie im Schritt 1 von der Anwendungs-Assistenten Generierte Klassen . Klicken Sie im Kombinationsfeld Basisklasse die Option CFormView als die Basisklasse CFormView angeben.
  2. Überschreiben Sie die OnUpdate()-Memberfunktion und rufen Sie UpdateData(), wie in der Dokumentation CFormView Member-Variablen mit dem aktuellen Dokumentdaten aktualisieren und zum Dialogfelddaten ausführen dokumentiert exchange (DDX).

    Hinweis : UpdateData ist nicht virtual und Aufruf der Basisklasse sicher, dass die abgeleitete Klasse DoDataExchange durch standard Polymorphismus aufgerufen wird. Die CFormView Dokumentation Zustände aufrufen, überschreiben nicht UpdateData.
  3. Wenn Sie die Anfangsgröße der Formularansicht festlegen möchten, überschreiben Sie die OnInitialUpdate()-Funktion. Der unten stehenden Text enthält zusätzliche Informationen über diese Schritt, die geringfügig in einer SDI- oder MDI-Anwendung ist.

Ändern der Größe einer SDI Main Rahmen um eine CFormView

Um ändern die Größe des im Hauptframe eine SDI-Anwendung (die CFormView als seine Ansichtsklasse verwendet) die geeignete Größe für das Formular werden Sie in Anwendungen Studio entworfen, überschreiben die OnInitialUpdate()-Funktion in eine Klasse von CFormView, wie folgt:
      void CMyFormView::OnInitialUpdate()
      {
         CFormView::OnInitialUpdate();
         GetParentFrame()->RecalcLayout();
         ResizeParentToFit(); // default argument is TRUE
      }
				
die ResizeParentToFit()-Funktion verhindert nicht das Formular Größe ändern, wenn der Benutzer die Größe der Anwendung Hauptframe ändert (Bildlaufleisten werden hinzugefügt automatisch bei Bedarf). Um die Formatvorlage des Rahmenfensters ändern, der das übergeordnete Element einer Ansicht eines Formulars ist, können Sie die PreCreateWindow()-Funktion in der CMainFrame-Klasse von Anwendungs-Assistenten generierten überschreiben. Z. B. entfernen den WS_THICKFRAME-Stil, und verhindern, dass Benutzer ändern der Größe des Fensters, PreCreateWindow() in MAINFRM.H deklarieren und die fügen Sie folgenden Code zu MainFrm.cpp:
      BOOL CMainFrame::PreCreateWindow(CREATESTRUCT &cs)
      {
         cs.style &= ~WS_THICKFRAME;
         return CFrameWnd::PreCreateWindow(cs);
      }
				

Ändern der Größe einer MDI-untergeordnete Rahmen um eine CFormView

Der Prozess der Ändern der Größe eines Frames untergeordnete MDI-ähnelt Ändern der Größe des einen Hauptframe für eine SDI-Anwendung wie oben beschrieben. Der RecalcLayout()-Aufruf ist jedoch nicht erforderlich.

Um die Größe des ein MDI-untergeordneten Rahmen um eine Formularansicht ändern, überschreiben die OnInitialUpdate()-Funktion in der Klasse von CFormView abgeleitet:
      void CMDIFormView::OnInitialUpdate()
      {
         CFormView::OnInitialUpdate();
         ResizeParentToFit(); // Default argument is TRUE.
      }
				
Wenn die Anwendung das Standardargument an die ResizeParentToFit()-Funktion überschreibt, im Wesentlichen die gleichen folgen treten als für eine SDI-Anwendung wie oben beschrieben. Darüber hinaus kann das untergeordnete Fenster zu groß für den einschließenden MDI-Frame main oder für den gesamten Bildschirm sein.

Um den Stil der MDI-untergeordneten Frame (z. B. um die WS_THICKFRAME-Formatvorlage zu entfernen, so dass der Benutzer die Größe des Fensters nicht ändern können) zu ändern, leiten Sie eine MDI-untergeordneten Fensterklasse ab und überschreiben Sie die PreCreateWindow-Funktion, wie im oben stehenden SDI-Beispiel veranschaulicht.

Schließen eines MDI-Formulars mit einer Schaltfläche

So erstellen Sie fügen eine Schaltfläche in einem Formular, das das Dokument schließt einen Meldungshandler für die BN_CLICKED-Meldung der CFormView-Klasse. Sicherstellen Sie, dass die CFormView-Schaltflächen nicht die Standard-IDOK oder IDCANCEL Bezeichner. Wenn dies der Fall ist, werden falsche Einträge in der Meldungszuordnung und falsche Funktionen für die Schaltflächen erstellt.

Sobald der Nachrichten-Handler vorhanden ist, simulieren Sie den Befehl Schließen auf das Menü mit den folgenden Code:
      void CMyForm::OnClickedButton1()
      {
         PostMessage(WM_COMMAND, ID_FILE_CLOSE);
      }
				
diese-Methode zum Schließen eines Formulars fordert den Benutzer zum Speichern der Datei, wenn die IsModified()-Memberfunktion mit dem Dokument verknüpften TRUE zurückgibt.

Eigenschaften

Artikel-ID: 98598 - Geändert am: Donnerstag, 5. Januar 2006 - Version: 4.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Foundation Class Library 4.2, wenn verwendet mit:
    • 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
Keywords: 
kbmt kbdocview kbhowto kbmdi kbuidesign KB98598 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 98598
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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