Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser exemplarischen Vorgehensweise erstellen Sie eine Anwendung, die dem Datei-Explorer ähnelt. Sie erstellen ein Fenster mit zwei Bereichen. Der linke Bereich enthält ein CMFCShellTreeCtrl -Objekt, das Ihren Desktop in einer hierarchischen Ansicht anzeigt. Der rechte Bereich enthält eine CMFCShellListCtrl , die die Dateien im Ordner anzeigt, der im linken Bereich ausgewählt ist.
Voraussetzungen
In Visual Studio 2017 und höher ist die MFC-Unterstützung eine optionale Komponente. Öffnen Sie zum Installieren das Visual Studio Installer über das Windows-Startmenü. Suchen Sie die Version von Visual Studio, die Sie verwenden, und wählen Sie die Schaltfläche "Ändern " aus. Stellen Sie sicher, dass die Desktopentwicklung mit C++ -Kachel aktiviert ist. Aktivieren Sie unter "Optionale Komponenten" die Schaltfläche "MFC-Unterstützung ".
In dieser exemplarischen Vorgehensweise wird davon ausgegangen, dass Sie Visual Studio für die Verwendung allgemeiner Entwicklungseinstellungen eingerichtet haben. Wenn Sie eine andere Entwicklungseinstellung verwenden, werden einige Visual Studio-Fenster, die in dieser exemplarischen Vorgehensweise verwendet werden, möglicherweise nicht standardmäßig angezeigt.
So erstellen Sie eine neue MFC-Anwendung mithilfe des MFC-Anwendungs-Assistenten
Diese Schritte variieren je nachdem, welche Version von Visual Studio Sie verwenden. Um die Dokumentation für Ihre bevorzugte Version von Visual Studio anzuzeigen, verwenden Sie das Auswahlsteuerelement Version. Es befindet sich am Anfang des Inhaltsverzeichnisses auf dieser Seite.
So erstellen Sie ein MFC-Projekt in Visual Studio
Klicken Sie im Hauptmenü auf Datei>Neu>Projekt, um das Dialogfeld Neues Projekt erstellen zu öffnen.
Geben Sie im Suchfeld oben MFC ein, und wählen Sie dann in der Ergebnisliste die MFC-App aus.
Klicke auf Weiter. Geben Sie auf der nächsten Seite einen Namen für das Projekt ein, und geben Sie bei Bedarf den Projektspeicherort an.
Klicken Sie auf die Schaltfläche Erstellen, um das Projekt zu erstellen.
Verwenden Sie nach der Anzeige des MFC-Anwendungs-Assistenten die folgenden Optionen:
Wählen Sie auf der linken Seite den Anwendungstyp aus. Wählen Sie dann single document and select Document/View architecture support. Wählen Sie unter ProjektformatVisual Studio aus, und wählen Sie in der Dropdownliste "Visuelle Formatvorlage und Farben" Office 2007 (Blau) aus.
Wählen Sie im Bereich "Verbunddokumentunterstützung" "Keine" aus.
Nehmen Sie keine Änderungen am Bereich " Dokumentvorlageneigenschaften " vor.
Stellen Sie im Bereich "Benutzeroberflächenfeatures " sicher, dass die Option " Menüleiste und Symbolleiste verwenden " ausgewählt ist. Behalten Sie alle anderen Optionen bei.
Wählen Sie im Bereich "Erweiterte Features " die Option "ActiveX", " Allgemeines Steuerelementmanifest" und " Navigationsbereich" aus . Lassen Sie alles andere so wie es ist. Die Option "Navigationsbereich " bewirkt, dass der Assistent den Bereich links neben dem Fenster mit einem
CMFCShellTreeCtrlbereits eingebetteten Fenster erstellt.Wir werden keine Änderungen am Bereich "Generierte Klassen " vornehmen. Klicken Sie daher auf "Fertig stellen ", um Ihr neues MFC-Projekt zu erstellen.
So erstellen Sie ein MFC-Projekt in Visual Studio 2017 oder einer früheren Version
Verwenden Sie den MFC-Anwendungs-Assistenten , um eine neue MFC-Anwendung zu erstellen. Um den Assistenten auszuführen, wählen Sie im Menü "Datei" "Neu" und dann "Projekt" aus. Das Dialogfeld "Neues Projekt " wird angezeigt.
Erweitern Sie im Dialogfeld "Neues Projekt " den Visual C++ -Knoten im Bereich "Projekttypen ", und wählen Sie "MFC" aus. Wählen Sie dann im Bereich "Vorlagen " die Option "MFC-Anwendung" aus. Geben Sie einen Namen für das Projekt ein, z
MFCShellControls. B. und klicken Sie auf "OK".Verwenden Sie nach der Anzeige des MFC-Anwendungs-Assistenten die folgenden Optionen:
Deaktivieren Sie im Bereich "Anwendungstyp " unter "Anwendungstyp" die Option " Dokumente im Registerkartenformat ". Wählen Sie als Nächstes "Einzelnes Dokument " aus, und wählen Sie "Dokument/Ansichtsarchitektur".Next, select Single document and select Document/View architecture support. Wählen Sie unter ProjektformatVisual Studio aus, und wählen Sie in der Dropdownliste "Visuelle Formatvorlage und Farben" Office 2007 (Blau) aus.
Wählen Sie im Bereich "Verbunddokumentunterstützung" "Keine" aus.
Nehmen Sie keine Änderungen am Bereich ' Dokumentvorlagenzeichenfolgen ' vor.
Wählen Sie im Bereich "Datenbankunterstützung " (Visual Studio 2015 und älter) "Keine" aus, da die Anwendung keine Datenbank verwendet.
Stellen Sie im Bereich "Benutzeroberflächenfeatures " sicher, dass die Option " Menüleiste und Symbolleiste verwenden " ausgewählt ist. Behalten Sie alle anderen Optionen bei.
Wählen Sie im Bereich "Erweiterte Features" unter "Erweiterte Features" nur ActiveX-Steuerelemente und das allgemeine Steuerelementmanifest aus. Wählen Sie unter erweiterten Framebereichen nur die Option "Navigationsbereich" aus . Er bewirkt, dass der Assistent den Bereich links neben dem Fenster mit einem
CMFCShellTreeCtrlbereits eingebetteten Fenster erstellt.Wir werden keine Änderungen am Bereich "Generierte Klassen " vornehmen. Klicken Sie daher auf "Fertig stellen ", um Ihr neues MFC-Projekt zu erstellen.
Überprüfen Sie, ob die Anwendung erfolgreich erstellt wurde, indem Sie sie erstellen und ausführen. Um die Anwendung zu erstellen, wählen Sie im Menü " Erstellen " die Option "Projektmappe erstellen" aus. Wenn die Anwendung erfolgreich erstellt wird, führen Sie die Anwendung aus, indem Sie im Menü "Debuggen" die Option "Debuggen starten" auswählen.
Der Assistent erstellt automatisch eine Anwendung mit einer Standardmenüleiste, einer Standardsymbolleiste, einer Standardstatusleiste und einer Outlook-Leiste links neben dem Fenster mit einer Ordneransicht und einer Kalenderansicht .
So fügen Sie der Dokumentansicht das Shelllistensteuerelement hinzu
In diesem Abschnitt fügen Sie eine Instanz der
CMFCShellListCtrlAnsicht hinzu, die der Assistent erstellt hat. Öffnen Sie die Ansichtsheaderdatei, indem Sie im Projektmappen-Explorer auf MFCShellControlsView.h doppelklicken.Suchen Sie die
#pragma onceDirektive am oberen Rand der Headerdatei. Fügen Sie direkt darunter diesen Code hinzu, um die Headerdatei fürCMFCShellListCtrlFolgendes einzuschließen:#include <afxShellListCtrl.h>Fügen Sie nun eine Membervariable vom Typ
CMFCShellListCtrlhinzu. Suchen Sie zuerst den folgenden Kommentar in der Headerdatei:// Generated message map functionsFügen Sie direkt oberhalb dieses Kommentars diesen Code hinzu:
private: CMFCShellListCtrl m_wndList;Der MFC-Anwendungs-Assistent hat bereits ein
CMFCShellTreeCtrlObjekt in derCMainFrameKlasse erstellt, aber es ist ein geschütztes Element. Wir greifen später auf das Objekt zu, erstellen Sie also jetzt einen Accessor dafür. Öffnen Sie die MainFrm.h-Headerdatei, indem Sie im Projektmappen-Explorer darauf doppelklicken. Suchen Sie den folgenden Kommentar:// AttributesFügen Sie unmittelbar danach die folgende Methodendeklaration hinzu:
public: CMFCShellTreeCtrl& GetShellTreeCtrl();Öffnen Sie als Nächstes die MainFrm.cpp Quelldatei, indem Sie im Projektmappen-Explorer darauf doppelklicken. Fügen Sie unten in dieser Datei die folgende Methodendefinition hinzu:
CMFCShellTreeCtrl& CMainFrame::GetShellTreeCtrl() { return m_wndTree; }Jetzt aktualisieren wir die
CMFCShellControlsViewKlasse, um dieWM_CREATEWindows-Nachricht zu behandeln. Öffnen Sie das Fenster "Kursansicht" , und wählen Sie dieCMFCShellControlsViewKlasse aus. Klicken Sie mit der rechten Maustaste, und wählen Sie Eigenschaften aus.Klicken Sie als Nächstes im Kurs-Assistenten auf die Registerkarte "Nachrichten ". Scrollen Sie nach unten, bis Sie die
WM_CREATENachricht gefunden haben. Wählen Sie in der Dropdownliste nebenWM_CREATE"OnCreate hinzufügen>"< aus. Der Befehl erstellt einen Nachrichtenhandler für uns und aktualisiert automatisch die MFC-Nachrichtenzuordnung.In der
OnCreateMethode erstellen wir nun unserCMFCShellListCtrlObjekt. Suchen Sie dieOnCreateMethodendefinition in der MFCShellControlsView.cpp Quelldatei, und ersetzen Sie die Implementierung durch den folgenden Code:int CMFCShellControlsView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; CRect rectDummy (0, 0, 0, 0); m_wndList.Create(WS_CHILD | WS_VISIBLE | LVS_REPORT, rectDummy, this, 1); return 0; }Wiederholen Sie den vorherigen Schritt, aber für die
WM_SIZENachricht. Die Anwendungsansicht wird dadurch neu gezeichnet, wenn ein Benutzer die Größe des Anwendungsfensters ändert. Ersetzen Sie die Definition für dieOnSizeMethode durch den folgenden Code:void CMFCShellControlsView::OnSize(UINT nType, int cx, int cy) { CView::OnSize(nType, cx, cy); m_wndList.SetWindowPos(NULL, -1, -1, cx, cy, SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE); }Der letzte Schritt besteht darin, die
CMFCShellTreeCtrlUnd-ObjekteCMFCShellListCtrlmithilfe der CMFCShellTreeCtrl::SetRelatedList-Methode zu verbinden. Nachdem Sie aufgerufen habenCMFCShellTreeCtrl::SetRelatedList, wird derCMFCShellListCtrlInhalt des elements, das in derCMFCShellTreeCtrlDatei ausgewählt ist, automatisch angezeigt. Wir verbinden die Objekte in derOnActivateViewMethode, die von CView::OnActivateView überschrieben werden.Fügen Sie in der Headerdatei "MFCShellControlsView.h" innerhalb der
CMFCShellControlsViewKlassendeklaration die folgende Methodendeklaration hinzu:protected: virtual void OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView);Fügen Sie als Nächstes der MFCShellControlsView.cpp Quelldatei die Definition für die Methode hinzu:
void CMFCShellControlsView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView) { if (bActivate&& AfxGetMainWnd() != NULL) { ((CMainFrame*)AfxGetMainWnd())->GetShellTreeCtrl().SetRelatedList(&m_wndList); } CView::OnActivateView(bActivate, pActivateView, pDeactiveView); }Da wir Methoden aus der
CMainFrameKlasse aufrufen, müssen wir oben in der MFCShellControlsView.cpp Quelldatei eine#includeDirektive hinzufügen:#include "MainFrm.h"Überprüfen Sie, ob die Anwendung erfolgreich erstellt wurde, indem Sie sie erstellen und ausführen. Um die Anwendung zu erstellen, wählen Sie im Menü " Erstellen " die Option "Projektmappe erstellen" aus. Wenn die Anwendung erfolgreich erstellt wird, führen Sie sie aus, indem Sie im Menü "Debuggen" die Option "Debuggen starten" auswählen.
Nun sollten die Details für das im
CMFCShellTreeCtrlAnsichtsbereich ausgewählte Element angezeigt werden. Wenn Sie auf einen Knoten imCMFCShellTreeCtrlKnoten klicken, wird diesCMFCShellListCtrlautomatisch aktualisiert. Ebenso, wenn Sie auf einen Ordner imCMFCShellListCtrlOrdner doppelklicken, sollte diesCMFCShellTreeCtrlautomatisch aktualisiert werden.Klicken Sie mit der rechten Maustaste auf ein beliebiges Element im Struktursteuerelement oder im Listensteuerelement. Sie erhalten dasselbe Kontextmenü wie bei Verwendung des echten Datei-Explorers.
Nächste Schritte
Der Assistent hat eine Outlook-Leiste mit einem Ordnerbereich und einem Kalenderbereich erstellt. Es ist wahrscheinlich nicht sinnvoll, einen Kalenderbereich in einem Explorer-Fenster zu haben, also entfernen Sie diesen Bereich jetzt.
Dies
CMFCShellListCtrlunterstützt das Anzeigen von Dateien in verschiedenen Modi, z. B. große Symbole, kleine Symbole, Liste und Details. Aktualisieren Sie Ihre Anwendung, um diese Funktionalität zu implementieren. Hinweis: Siehe Visual C++-Beispiele.