Sdílet prostřednictvím


Návod: Použití nových ovládacích prvků prostředí MFC

V tomto názorném postupu vytvoříte aplikaci, která se podobá Průzkumník souborů. Vytvoříte okno se dvěma podokny. 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 pro Visual Studio z windows nabídka Start. 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.

  • V tomto názorném postupu se předpokládá, že jste sadu Visual Studio nastavili tak, aby používala obecné vývojové Nastavení. 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ření projektu MFC v sadě Visual Studio

  1. V hlavní nabídce zvolte Soubor>nový>projekt a otevřete dialogové okno Vytvořit nový projekt.

  2. Do vyhledávacího pole v horní části zadejte MFC a v seznamu výsledků zvolte aplikaci MFC.

  3. 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.

  4. Zvolte tlačítko Vytvořit a vytvořte projekt.

    Po zobrazení Průvodce aplikací MFC použijte následující možnosti:

    1. 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).

    2. V podokně Podpora složeného dokumentu vyberte Žádné.

    3. Neprovádejte žádné změny v podokně Vlastnosti šablony dokumentu.

    4. 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.

    5. V podokně Rozšířené funkce vyberte technologie ActiveX ovládací prvky, manifest běžného 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 podoknem CMFCShellTreeCtrl .

    6. 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ší

  1. 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 .

  2. 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:

    1. V podokně Typ aplikace v části Typ aplikace zrušte zaškrtnutí políčka Dokumenty s kartami. 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).

    2. V podokně Podpora složeného dokumentu vyberte Žádné.

    3. Neprovázejte žádné změny v podokně Řetězce šablony dokumentu.

    4. V podokně Podpora databáze (Visual Studio 2015 a starší) vyberte Žádné, protože aplikace nepoužívá databázi.

    5. 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.

    6. V podokně Rozšířené funkce v části Pokročilé funkce vyberte pouze technologie ActiveX ovládací prvky 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 s již vloženým podoknem CMFCShellTreeCtrl .

    7. 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 aplikaci výběrem možnosti 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 seznam prostředí do zobrazení dokumentu

  1. V této části přidáte instanci CMFCShellListCtrl do zobrazení, které průvodce vytvořil. Otevřete soubor záhlaví zobrazení poklikáním mfcShellControlsView.h v Průzkumník ř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 pro CMFCShellListCtrl:

    #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;
    
  2. Průvodce aplikací MFC již vytvořil CMFCShellTreeCtrl objekt ve CMainFrame 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ý objekt. Otevřete soubor hlaviček MainFrm.h tak, že na něj poklikáním v Průzkumník řešení. Vyhledejte následující komentář:

    // Attributes
    

    Bezprostředně pod něj přidejte následující deklaraci metody:

    public:
        CMFCShellTreeCtrl& GetShellTreeCtrl();
    

    Dále otevřete zdrojový soubor MainFrm.cpp tak, že na něj dvakrát kliknete v Průzkumník řešení. V dolní části tohoto souboru přidejte následující definici metody:

    CMFCShellTreeCtrl& CMainFrame::GetShellTreeCtrl()
    {
         return m_wndTree;
    }
    
  3. Teď aktualizujeme CMFCShellControlsView třídu tak, aby zpracovávala WM_CREATE zprávu windows. Otevřete okno Zobrazení třídy a vyberte CMFCShellControlsView 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 zprávu nenajdeteWM_CREATE. V rozevíracím seznamu vedle WM_CREATEpoložky Vyberte <Přidat> onCreate. Příkaz pro nás vytvoří obslužnou rutinu zprávy a automaticky aktualizuje mapu zpráv MFC.

    OnCreate V metodě teď vytvoříme objektCMFCShellListCtrl. Vyhledejte definici OnCreate 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;
    }
    
  4. Opakujte předchozí krok, ale pro WM_SIZE zprávu. To způsobí, že zobrazení aplikací bude překresleno pokaždé, když uživatel změní velikost okna aplikace. Nahraďte definici metody OnSize 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);
    }
    
  5. Posledním krokem je připojení CMFCShellTreeCtrl objektů a CMFCShellListCtrl objektů pomocí CMFCShellTreeCtrl::SetRelatedList metoda. Po volání CMFCShellTreeCtrl::SetRelatedListCMFCShellListCtrl se automaticky zobrazí obsah položky vybrané v okně CMFCShellTreeCtrl. Objekty v OnActivateView metodě, které jsou přepsány 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 přidejte definici metody do zdrojového souboru MFCShellControlsView.cpp:

    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 přidat #include direktivu v horní části zdrojového souboru MFCShellControlsView.cpp:

    #include "MainFrm.h"
    
  6. 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 výběrem možnosti Spustit ladění z nabídky Ladění .

    Teď byste měli vidět podrobnosti o položce vybrané v CMFCShellTreeCtrl podokně zobrazení. Po kliknutí na uzel v CMFCShellTreeCtrlCMFCShellListCtrl uzlu se automaticky aktualizuje. Podobně platí, že pokud dvakrát kliknete na složku ve CMFCShellListCtrlsložce , CMFCShellTreeCtrl měla by se 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 skutečný Průzkumník 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++.

Viz také

Návody