Einführung in MFC C++

 C Programming >> C-Programmierung >  >> Tags >> MFC
Einführung in MFC C++

MFC C++ steht für Microsoft Foundation Library, eine Bibliothek, die auf einem objektorientierten Ansatz basiert und zum Erstellen und Entwickeln von Apps verwendet wird, die auf dem Windows-Betriebssystem ausgeführt werden. Es begann 1992 von der Microsoft-Organisation und wurde bald sehr beliebt. Obwohl Microsoft viele andere Anwendungen entwickelt, wird MFC von den Entwicklern immer noch am meisten bevorzugt.

Was ist MFC C++?

  • MFC ist die Bibliothek, die für Microsoft Foundation Class steht und viele Konstanten, Funktionen, Klassen und Datentypen enthält, die die Erstellung von Anwendungen für die Betriebssysteme der Microsoft Windows-Familie vereinfachen. In MFC-Anwendungen sind verschiedene Klassen in der hierarchischen Struktur des Baums organisiert, um die erforderlichen Operationen und Funktionalitäten zu implementieren. Beispielsweise ist die CObject-Klasse der Vorfahre aller C++-Klassen, die Sie in Ihrer MFC-Anwendung schreiben. Alle anderen Klassen sind direkte oder indirekte Kindklassen von CObject.
  • MFC ist mit den meisten Anwendungen wie C++ 11, Boost und vielen anderen kompatibel. Es hat jedoch das Merkmal der Nicht-Portabilität, da es die grafische Benutzeroberfläche als Ursprung verwendet. Darüber hinaus wurden viele Unterschiede zwischen C++ und MFC erstellt, von denen einige die Verwendung von Lambda-Funktionen, benutzerdefinierte Literale, Manipulation von Datum und Uhrzeit, Manipulation von Zeichenfolgen, die Semantik des Verschiebens, Iterator- basierte Schleifen und Lambda-Funktionen. Die MFC-Architektur ist daher an die alten Codierungsmethoden gebunden, die diese Art von Muster aufweisen. Aus diesem Grund wirkt sich die Leistung der Anwendung im Falle von Qualitätsverbesserungen auf die Erfahrung des DX-Entwicklers aus, da sie langsamer wird.

MFC C++ Future

Die Zukunft von MFC C++ verfügt über eine umfangreiche Implementierung und Verwendung in den Anwendungen der Echtzeitszenarien, wie z. B. die Implementierung der Bereitstellung von automatisierten Pipes, Cloud-Computing, Infrastruktur als Code und unveränderlichen Containern. Der einzige zusätzliche Aufwand, den wir unternehmen müssen, ist das Entfernen der GUI, dh der grafischen Benutzeroberfläche von MFC C++, damit es auch auf den anderen Betriebssystemen wie Linux ausgeführt werden kann, und Sie müssen die Codierung in der Konfiguration als implementieren Code, damit wir in Zukunft die folgenden Vorteile daraus ziehen können.

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

  • Die Signale und die Geschäftslogik können aus der Schleife entfernt werden, indem einfach die MFC, die die Schleife der Fensternachrichtenverarbeitung bereitstellt, durch die einfache While-Schleife ersetzt wird, in der wir unsere aktualisierte Hauptfunktion platzieren können, die implementiert wird unsere Geschäftslogik.
  • Die standardmäßigen C++-Bibliotheken können anstelle von MFC-Containern verwendet werden.
  • Wir können unser System so gestalten, dass es Werkzeuge sind, die wir plattformübergreifend verwenden werden. So kann beispielsweise die vcxproj-Datei durch CMake ersetzt werden, das von Visual Studio auf dem Windows-Betriebssystem und vielen anderen Betriebssystemen und Entwicklungsumgebungen wie VSCode bereitgestellt und unterstützt wird.
  • Wir können die Version und den Compiler auswählen, die wir für unsere Entwicklung verwenden werden. Beachten Sie, dass die neuesten Funktionen der C++-Programmiersprachen nur vom Windows-Betriebssystem der neuesten Version unterstützt werden. Diese Version ist normalerweise die neuere Version, die standardmäßig in Ihrer installierten Anwendung in Ihrem System eingestellt ist.

Um die oben genannten Änderungen zu implementieren, können Sie den folgenden Code verwenden und mit dem vorhandenen Code auf dem System vergleichen. Danach können wir den Zuordnungscode in Ihrem MFC durchlaufen.

Code:

CMap<CString, LPCSTR, cSampleBar *, cSampleBar *> educbaSampleMap;
cSampleBar sampleFoo(3.1415);
educbaSampleMap.SetAt("LongBar"), &sampleFoo);
POSITION educbaSamplePosition = educbaSampleMap.GetStartPosition();
while (educbaSamplePosition != NULL)
{
cSampleBar * educbaPointerBar;
CString string;
// Retrieve value and key of string (educbaPointerBar)
educbaSampleMap.GetNextAssoc(educbaSamplePosition, string, educbaPointerBar);
// Code to write for iterating using loop statements
}
In case of C++ 17 version the constructs can be compared to following code snippet –
std::educbaUnorderedMap<std::string, CBar> educbaSampleMap;
educbaSampleMap.emplace(“educbaLongBar”, 3.1415);
for(auto & [string, bar] : educbaSampleMap)
{
// Code to write for iterating using loop statements
}

Erstellen einer MFC-Anwendung

Um eine neue MFC-Anwendung zu erstellen, können Sie die folgenden Schritte ausführen, wenn Sie eine dialogbasierte MFC-App erstellen möchten.

  • Klicken Sie auf das Hauptmenü und wählen Sie dann die Option Datei und klicken Sie dann auf Neu. Als nächstes fahren Sie mit der Auswahl der Projektoption fort.
  • Außerdem können Sie nach MFC suchen, indem Sie einfach im Suchfeld danach suchen und dann die MFC-App-Option aus der Ergebnisliste auswählen.
  • Sie können die Änderungen in den Standardeinstellungen gemäß Ihren Anforderungen vornehmen und dann auf Erstellen klicken, um auf den MFC-Anwendungsassistenten zuzugreifen.
  • Dies ist der Bildschirm, in dem Sie die Änderungen in Ihren Konfigurationen nach Bedarf vornehmen und dann auf Fertig stellen klicken können.

Der Konfigurationsbildschirm sieht wie unten gezeigt aus.

Ausgabe:

Erstellen Sie ein neues MFC-Projekt

Um ein neues Projekt von MFC C++ zu erstellen, müssen Sie die folgenden Schritte ausführen:

  • Klicken Sie auf das oben angezeigte Menü und dann auf die Option Datei; Außerdem müssen Sie auf Neues Projekt klicken.
  • Danach müssen Sie auf Projekttypen klicken und die Option Visual C++ auswählen.
  • Sie müssen dann in der Liste der bereitgestellten Vorlagen auf das Win32-Projekt klicken.
  • Sie können einen beliebigen Namen nennen, den Sie Ihrem Projekt zuweisen möchten, und dann unten auf die Schaltfläche OK klicken.

Die Benutzeroberfläche sieht wie unten gezeigt aus.

Ausgabe:

Beispiel für MFC C++

Unten ist das erwähnte Beispiel:

Sie können auf die offizielle Dokumentation von Microsoft verweisen, wo verschiedene Beispielbeispiele auf Github bereitgestellt werden.

Besuchen Sie dazu den folgenden Link – https://docs.microsoft.com/en-us/cpp/overview/visual-cpp-samples?view=msvc-160.

Betrachten wir ein Beispiel, in dem wir eine MFC-C++-Anwendung erstellen.

Code:

// EducbaSampleMFC.h
// Class for application
class CEducbaSampleMFC : public CEducbaWinApplication
{
public:
virtual BOOL InitInstance();
};
// class for implementing frame in windows
class CEducbaFrame : public CEducbaWindows
{
public:
CEducbaFrame();
protected:
// Further two messages will be the part of MFC dispatch system of library
afx_msg void SampleLeftButtonPress(UINT sampleFlags, CPoint point);
afx_msg void OccurrenceOfPaint();
MSG_MAP_DECLARATION()
};
EducbaSampleMFC.cpp implementation file for the EducbaSampleMFCExample application:
#include <afxwin.h>
#include "educba_sample_app.h"
CEducbaSampleMFC sampleObj; // object of CEducbaSampleMFC class
BOOL CEducbaSampleMFC::InitInstance()
{
MFCMainWindow = new CEducbaFrame();
MFCMainWindow->ShowWindow(m_nCmdShow);
MFCMainWindow->UpdateWindow();
return TRUE;
}
BEGIN_MESSAGE_MAP(CEducbaFrame, CEducbaWindows)
ON_WM_LBUTTONDOWN()
ON_WM_PAINT()
END_MESSAGE_MAP()
CEducbaFrame::CEducbaFrame()
{
Create(NULL, "EducbaSampleMFCExample Application");
}
void CEducbaFrame::SampleLeftButtonPress(UINT sampleFlags, CPoint point)
{
TRACE("Entering CEducbaFrame::SampleLeftButtonPress - %lx, %d, %d\n", (long) sampleFlags, point.x, point.y);
}
void CEducbaFrame::OccurrenceOfPaint()
{
CPaintDC dc(this);
dc.TextOut(0, 0, "Educba is the best site to increase your knowledge!");
}

Ausgabe:

Schlussfolgerung

MFC C++ steht für Microsoft Foundation Library, eine Bibliothek, die auf einem objektorientierten Ansatz basiert und 1992 von der Microsoft-Organisation eingeführt wurde und bald sehr beliebt wurde. Es wird zum Erstellen und Entwickeln von Apps verwendet, die auf dem Windows-Betriebssystem ausgeführt werden.