Die Struktur einer MFC-Anwendung

Die Struktur einer MFC-Anwendung

Wenn Sie Microsoft Foundation Classes (MFC) in Ihrer Entwicklung verwenden möchten, müssen Sie wissen, was die Klassen tun und wie sie verwendet werden. Dieser Tipp, aus dem ein Auszug stammt Unterrichtet, diskutiert die Struktur von MFC-Anwendungen. Es stammt von Sams Teach Yourself MFC in 24 Stunden von Michael Morrison, veröffentlicht von Que.

Unabhängig davon, ob eine Anwendung die Dokument- / Ansichtsarchitektur von MFC verwendet, haben alle MFC-Anwendungen einige Gemeinsamkeiten:

  • Ein Anwendungsobjekt
  • Ein Hauptrahmenfenster
  • Elemente der Benutzeroberfläche
  • Anwendungsdaten
  • Ressourcen

Das Anwendungsobjekt ist die Grundlage für alle MFC-Anwendungen. Es funktioniert hinter den Kulissen, um den Start, die Ausführung und die Beendigung einer Anwendung zu koordinieren. Das Anwendungsobjekt ist für die Erstellung eines Hauptrahmenfensters verantwortlich, das als Grundlage für die Benutzeroberfläche einer Anwendung dient. Das Hauptfenster enthält die Elemente der Benutzeroberfläche wie Schaltflächen und Symbolleisten, mit denen Anwendungsaufgaben ausgeführt werden.

Praktisch alle MFC-Anwendungen arbeiten mit bestimmten Datentypen, sei es Text, Grafiken, Datenbankeinträge oder benutzerdefinierte anwendungsspezifische Daten. Diese Daten werden normalerweise im Clientbereich des Hauptrahmenfensters angezeigt und bearbeitet. Zusätzlich zu den anwendungsspezifischen Daten, die an der Hauptfunktion einer Anwendung beteiligt sind, sind allen Anwendungen spezielle Daten zugeordnet. Diese Daten werden in Form von Anwendungsressourcen wie Symbolen und Menüs bereitgestellt. Anwendungsressourcen werden während der Entwicklung erstellt und einer Anwendung zugeordnet und dann direkt in die ausführbare EXE-Datei einer Anwendung kompiliert.

Innerhalb des Anwendungsobjekts
Der Zweck des Anwendungsobjekts besteht darin, die Initialisierung, Ausführung und Beendigung einer Anwendung zu steuern. Neben der Kapselung der Win32 WinMain () -Funktion für eine Anwendung bietet das Anwendungsobjekt einige wichtige Elementfunktionen, mit denen die Ausführung einer Anwendung gesteuert werden kann:

  • InitInstance ()
  • Lauf()
  • OnIdle ()
  • ExitInstance ()

WinMain () führt die Show weiterhin in einer MFC-Anwendung hinter den Kulissen aus. Das Anwendungsobjekt bietet jedoch über seine Mitgliedsfunktionen sauberen Zugriff auf wichtige Abschnitte der WinMain () -Funktion. In den nächsten Abschnitten wird jede dieser Elementfunktionen untersucht.

Die InitInstance () -Mitgliedsfunktion
Die Memberfunktion InitInstance () wird kurz vor dem Start von WinMain () aufgerufen, um die Instanzinitialisierung durchzuführen, die für jede Instanz einer ausgeführten Anwendung erfolgt. InitInstance () ist ohne Zweifel die wichtigste Elementfunktion im Anwendungsobjekt, da praktisch alle Anwendungen mit der Instanzinitialisierung befasst sind. Tatsächlich müssen Sie die Memberfunktion InitInstance () in Ihren eigenen Anwendungsklassen überschreiben. In der Regel überschreiben Sie InitInstance (), um Ihr Hauptfensterobjekt zu erstellen, und setzen das geerbte Datenelement m_pMainWnd so, dass es auf dieses Fenster verweist.

Die Run () -Mitgliedsfunktion
In einer Anwendung, die ausschließlich mit der Win32-API erstellt wurde, verbringt die WinMain () -Funktion den größten Teil ihrer Zeit in einer Nachrichtenschleife, die auf eingehende Nachrichten wartet und diese verarbeitet. Diese Nachrichtenschleife ist letztendlich dafür verantwortlich, Nachrichten zu empfangen und an das Hauptrahmenfenster einer Anwendung zu senden. In einer MFC-Anwendung delegiert WinMain () die Nachrichtenschleife an die Memberfunktion Run (). Run () -Schleifen warten ständig auf eine Nachricht. Wenn keine Nachrichten verfügbar sind, was häufig der Fall ist, ruft Run () die Mitgliedsfunktion OnIdle () auf, um die Leerlaufverarbeitung durchzuführen. Wenn die Anwendung beendet wird, ruft Run () die Mitgliedsfunktion ExitInstance () auf.

Die OnIdle () -Mitgliedsfunktion
Die Mitgliedsfunktion OnIdle () wird verwendet, um eine Leerlaufverarbeitung durchzuführen, die für den Betrieb einer Anwendung nicht unmittelbar kritisch ist. Normalerweise überschreiben Sie OnIdle (), um Hintergrundaufgaben wie eine langwierige Berechnung auszuführen. Die Standardversion von OnIdle () aktualisiert den Status von Elementen der Benutzeroberfläche wie Menüelementen und Symbolleistenschaltflächen.

Die ExitInstance () -Mitgliedsfunktion
Die Mitgliedsfunktion ExitInstance () wird aufgerufen, wenn eine Instanz einer Anwendung beendet wird. ExitInstance () wird von der Memberfunktion Run () aufgerufen, normalerweise als Reaktion darauf, dass der Benutzer eine Anwendung schließt. Normalerweise überschreiben Sie ExitInstance (), um die Bereinigung von Objekten durchzuführen, die während der Ausführung einer Anwendung erstellt wurden. Beachten Sie jedoch, dass MFC Standardobjekte wie Dokumente, Ansichten und Rahmenfenster automatisch bereinigt.

Um mehr von diesem Auszug zu lesen, klicken Sie auf InformIT. Für InformIT ist eine Registrierung erforderlich, die jedoch kostenlos ist.

Um mehr über MFC zu erfahren, sehen Sie sich die Auswahl bei uns an eMarketplace.

Similar Posts

Leave a Reply