Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto názorném postupu vytvoříte aplikaci, která se podobá Průzkumníkovi souborů. Vytvoříte okno se dvěma panely. Levé podokno bude obsahovat objekt CMFCShellTreeCtrl , který zobrazuje plochu v hierarchickém zobrazení. Pravé podokno bude obsahovat příkaz CMFCShellListCtrl , který zobrazuje soubory ve složce vybrané v levém podokně.
Požadavky
V sadě Visual Studio 2017 a novějších je podpora MFC volitelnou komponentou. Pokud ho chcete nainstalovat, otevřete instalační program sady Visual Studio z nabídky Start systému Windows. Vyhledejte verzi sady Visual Studio, kterou používáte, a zvolte tlačítko Upravit . Ujistěte se, že je zaškrtnutá dlaždice Vývoj desktopových aplikací pomocí jazyka C++ . V části Volitelné součásti zaškrtněte tlačítko Podpora mfc .
Tento názorný postup předpokládá, že jste sadu Visual Studio nastavili tak, aby používala obecná nastavení vývoje. Pokud používáte jiné nastavení vývoje, některá okna sady Visual Studio, která používáme v tomto názorném postupu, nemusí být ve výchozím nastavení zobrazena.
Vytvoření nové aplikace MFC pomocí Průvodce aplikací MFC
Tyto kroky se liší v závislosti na tom, jakou verzi sady Visual Studio používáte. Pokud chcete zobrazit dokumentaci pro upřednostňovanou verzi sady Visual Studio, použijte ovládací prvek selektoru verzí . Nachází se v horní části obsahu na této stránce.
Vytvořit projekt MFC ve Visual Studio
V hlavní nabídce zvolte Soubor>nový>projekt a otevřete dialogové okno Vytvořit nový projekt.
Do vyhledávacího pole v horní části zadejte MFC a v seznamu výsledků zvolte aplikaci MFC .
Klikněte na tlačítko Další. Na další stránce zadejte název projektu a v případě potřeby zadejte umístění projektu.
Zvolte tlačítko Vytvořit a vytvořte projekt.
Po zobrazení Průvodce aplikací MFC použijte následující možnosti:
Na levé straně zvolte Typ aplikace . Pak vyberte Jeden dokument a vyberte podporu architektury Document/View. V části Styl projektu vyberte Visual Studio a v rozevíracím seznamu Styl a barvy vizuálu vyberte Office 2007 (Modrý motiv).
V podokně Podpora složeného dokumentu vyberte Žádné.
Neprovádejte žádné změny v podokně Vlastnosti šablony dokumentu .
V podokně Funkce uživatelského rozhraní se ujistěte, že je vybraná možnost Použít řádek nabídek a panel nástrojů . Ponechte všechny ostatní možnosti tak, jak jsou.
V podokně Rozšířené funkce vyberte ovládací prvky ActiveX, společný manifest ovládacího prvku a možnost navigačního podokna . Vše ostatní nechte tak, jak je. Možnost Navigační podokno způsobí, že průvodce vytvoří podokno vlevo od okna s již vloženým
CMFCShellTreeCtrl
.V podokně Vygenerované třídy nebudeme provádět žádné změny, takže kliknutím na tlačítko Dokončit vytvořte nový projekt MFC.
Vytvoření projektu MFC v sadě Visual Studio 2017 nebo starší
Pomocí Průvodce aplikací MFC vytvořte novou aplikaci MFC. Průvodce spustíte tak, že v nabídce Soubor vyberete Nový a pak vyberete Projekt. Zobrazí se dialogové okno Nový projekt .
V dialogovém okně Nový projekt rozbalte uzel Visual C++ v podokně Typy projektů a vyberte MFC. Potom v podokně Šablony vyberte aplikaci MFC. Zadejte název projektu, například
MFCShellControls
a klikněte na tlačítko OK.Po zobrazení Průvodce aplikací MFC použijte následující možnosti:
V podokně Typ aplikace pod Typ aplikace zrušte zaškrtnutí možnosti Záložkové dokumenty. Dále vyberte Jeden dokument a vyberte Podpora architektury Document/View. V části Styl projektu vyberte Visual Studio a v rozevíracím seznamu Styl a barvy vizuálu vyberte Office 2007 (Modrý motiv).
V podokně Podpora složeného dokumentu vyberte Žádné.
Nepřidávejte žádné změny do podokna řetězců šablony dokumentu.
V podokně Podpora databáze (Visual Studio 2015 a starší) vyberte Žádné , protože aplikace nepoužívá databázi.
V podokně Funkce uživatelského rozhraní se ujistěte, že je vybraná možnost Použít řádek nabídek a panel nástrojů . Ponechte všechny ostatní možnosti tak, jak jsou.
V podokně Rozšířené funkce v části Pokročilé funkce vyberte pouze ovládací prvky ActiveX a manifest běžného ovládacího prvku. V části Podokna s rozšířenými rámečky vyberte pouze možnost navigačního podokna . Průvodce vytvoří podokno vlevo od okna, do kterého je již vložen
CMFCShellTreeCtrl
.V podokně Vygenerované třídy nebudeme provádět žádné změny, takže kliknutím na tlačítko Dokončit vytvořte nový projekt MFC.
Ověřte, že se aplikace úspěšně vytvořila, a to sestavením a spuštěním aplikace. Aplikaci sestavíte tak, že v nabídce Sestavenívyberete Sestavit řešení. Pokud se aplikace úspěšně sestaví, spusťte ji tím, že vyberete Spustit ladění z nabídky Ladění.
Průvodce automaticky vytvoří aplikaci se standardním řádkem nabídek, standardním panelem nástrojů, standardním stavovým řádkem a outlookovým panelem vlevo od okna se zobrazením Složky a zobrazením Kalendář .
Přidání ovládacího prvku seznamu prostředí do zobrazení dokumentu
V této části přidáte instanci
CMFCShellListCtrl
do zobrazení, které průvodce vytvořil. Otevřete soubor záhlaví zobrazení dvojím kliknutím na MFCShellControlsView.h v Průzkumníku řešení.Vyhledejte direktivu
#pragma once
v horní části souboru záhlaví. Přímo pod něj přidejte tento kód, který bude obsahovat soubor hlavičky proCMFCShellListCtrl
:#include <afxShellListCtrl.h>
Nyní přidejte členovou proměnnou typu
CMFCShellListCtrl
. Nejprve v souboru záhlaví vyhledejte následující komentář:// Generated message map functions
Bezprostředně nad tento komentář přidejte tento kód:
private: CMFCShellListCtrl m_wndList;
Průvodce aplikací MFC již vytvořil
CMFCShellTreeCtrl
objekt veCMainFrame
třídě, ale je to chráněný člen. K objektu se dostaneme později, takže pro něj teď vytvořte přístupový prvek. Otevřete soubor hlaviček MainFrm.h poklikáním v Průzkumníku řešení. Vyhledejte následující komentář:// Attributes
Bezprostředně pod něj přidejte následující deklaraci metody:
public: CMFCShellTreeCtrl& GetShellTreeCtrl();
Potom otevřete zdrojový soubor MainFrm.cpp dvojím kliknutím v Průzkumníku řešení. V dolní části tohoto souboru přidejte následující definici metody:
CMFCShellTreeCtrl& CMainFrame::GetShellTreeCtrl() { return m_wndTree; }
Teď aktualizujeme
CMFCShellControlsView
třídu tak, aby zpracovávalaWM_CREATE
zprávu windows. Otevřete okno Zobrazení třídy a vyberteCMFCShellControlsView
třídu. Klikněte pravým tlačítkem myši a vyberte Vlastnosti.Dále v Průvodci třídou klikněte na kartu Zprávy . Posuňte se dolů, dokud nenajdete
WM_CREATE
zprávu. V rozevíracím seznamu vedleWM_CREATE
vyberte <Přidat> OnCreate. Příkaz vytvoří obslužnou rutinu zprávy a automaticky za nás aktualizuje mapu zpráv MFC.OnCreate
V metodě teď vytvoříme objektCMFCShellListCtrl
.OnCreate
Vyhledejte definici metody ve zdrojovém souboru MFCShellControlsView.cpp a nahraďte její implementaci následujícím kódem: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; }
Opakujte předchozí krok, tentokrát pro zprávu
WM_SIZE
. To způsobí, že zobrazení aplikací bude překresleno pokaždé, když uživatel změní velikost okna aplikace. Nahraďte definici metodyOnSize
následujícím kódem: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); }
Posledním krokem je připojení
CMFCShellTreeCtrl
objektů aCMFCShellListCtrl
objektů pomocí CMFCShellTreeCtrl::SetRelatedList metoda. Po voláníCMFCShellTreeCtrl::SetRelatedList
, seCMFCShellListCtrl
automaticky zobrazí obsah položky vybrané v okněCMFCShellTreeCtrl
. Objekty spojujeme v metoděOnActivateView
, která je přepsána z CView::OnActivateView.Do souboru hlavičky MFCShellControlsView.h přidejte uvnitř
CMFCShellControlsView
deklarace třídy následující deklaraci metody:protected: virtual void OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView);
Dále do zdrojového souboru MFCShellControlsView.cpp přidejte definici metody:
void CMFCShellControlsView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView) { if (bActivate&& AfxGetMainWnd() != NULL) { ((CMainFrame*)AfxGetMainWnd())->GetShellTreeCtrl().SetRelatedList(&m_wndList); } CView::OnActivateView(bActivate, pActivateView, pDeactiveView); }
Protože voláme metody z
CMainFrame
třídy, musíme na začátek zdrojového souboru MFCShellControlsView.cpp přidat#include
direktivu:#include "MainFrm.h"
Ověřte, že se aplikace úspěšně vytvořila, a to sestavením a spuštěním aplikace. Aplikaci sestavíte tak, že v nabídce Sestavenívyberete Sestavit řešení. Pokud se aplikace úspěšně sestaví, spusťte ji zvolením Spustit ladění z nabídky Ladění.
Teď byste měli vidět podrobnosti o položce vybrané v podokně zobrazení
CMFCShellTreeCtrl
. Po kliknutí na uzel vCMFCShellTreeCtrl
seCMFCShellListCtrl
automaticky aktualizuje. Podobně, pokud dvakrát kliknete na složku vCMFCShellListCtrl
,CMFCShellTreeCtrl
by se měla automaticky aktualizovat.Klikněte pravým tlačítkem na libovolnou položku v ovládacím prvku stromu nebo v ovládacím prvku seznamu. Zobrazí se stejná místní nabídka, jako kdybyste používali opravdového Průzkumníka souborů.
Další kroky
Průvodce vytvořil panel Outlooku s podoknem Složky i podoknem Kalendář . Pravděpodobně nemá smysl mít podokno Kalendář v okně Průzkumníka , takže toto podokno teď odeberte.
Podporuje
CMFCShellListCtrl
zobrazování souborů v různých režimech, jako jsou velké ikony, malé ikony, seznam a podrobnosti. Aktualizujte aplikaci, aby tuto funkci implementovali. Nápověda: Viz ukázky jazyka Visual C++.