Condividi tramite


Procedura dettagliata: Utilizzando i nuovi controlli shell MFC

In questa procedura dettagliata, verrà creata un'applicazione simile a Esplora file.Si creerà una finestra che contiene due riquadri.Il riquadro a sinistra conterrà un oggetto di CMFCShellTreeCtrl che visualizza una visualizzazione gerarchica del desktop.Il riquadro di destra conterrà CMFCShellListCtrl che mostra i file nella cartella selezionata nel riquadro sinistro.

Prerequisiti

In questa procedura dettagliata si presuppone che sia installato Visual Studio per utilizzare Impostazioni generali per lo sviluppo.In caso di installazione di sviluppo diverso, alcune finestre di Visual Studio che utilizzato in questa procedura dettagliata non vengano visualizzati per impostazione predefinita.

Per creare una nuova applicazione MFC mediante la Creazione guidata applicazione MFC

  1. Utilizzare Creazione guidata applicazione MFC per creare una nuova applicazione MFC.Per eseguire la procedura guidata, dal menu Nuovoselezionato File quindi selezionare Progetto.La finestra di dialogo Nuovo progetto visualizzare.

  2. Nella finestra di dialogo Nuovo progetto , espandere il nodo *** Visual C++ *** nel riquadro Tipi di progetto e selezionare *** MFC ***.Quindi, nel riquadro Modelli , Applicazione MFCselezionato.Digitare un nome per il progetto, ad MFCShellControls e clic OK.Creazione guidata applicazione MFC Visualizzare.

  3. Nella finestra di dialogo Creazione guidata applicazione MFC , fare clic Avanti.Il riquadro Tipo di applicazione visualizzare.

  4. Nel riquadro Tipo di applicazione , in Tipo di applicazione, deselezionare l'opzione *** documenti a schede *** .Successivamente, *** Documento *** selezionato e ***** Supporto per l'architettura documento *****selezionato.In Stile del progetto, Visual Studioselezionato e dall'elenco **Office 2007 (tema blu)**selezionato a discesa *** stile di visualizzazione e colori *** .Lasciare le altre opzioni su.Scegliere Avanti per visualizzare il riquadro Supporto documenti compositi .

  5. Nel riquadro Supporto documenti compositi , Nessunoselezionato.Scegliere Avanti per visualizzare il riquadro *** Stringhe modello di documento *** .

  6. Non apportare alcune modifiche al riquadro *** Stringhe modello di documento *** .Scegliere Avanti per visualizzare il riquadro Supporto database .

  7. Nel riquadro Supporto database , Nessuno selezionato in quanto l'applicazione non utilizza un database.Scegliere Avanti per visualizzare il riquadro Funzionalità interfaccia utente .

  8. Nel riquadro Funzionalità interfaccia utente , assicurarsi che l'opzione *** Utilizzare una barra dei menu e la barra degli strumenti *** sia selezionata.Lasciare le altre opzioni su.Scegliere Avanti per visualizzare il riquadro Funzionalità avanzate .

  9. Nel riquadro Funzionalità avanzate , in Funzionalità avanzate, selezionare solo Controlli ActiveX e *** Manifesto di controlli comuni ***.In Riquadri frame avanzati, selezionare solo l'opzione *** Riquadro di navigazione *** .In questo modo la procedura guidata per creare il riquadro a sinistra della finestra con CMFCShellTreeCtrl già incorporato.Scegliere Avanti per visualizzare il riquadro Classi generate .

  10. Non si desidera apportare alcune modifiche al riquadro Classi generate .Pertanto, Fine clic su per creare il nuovo progetto MFC.

  11. Verificare che l'applicazione sia stata creata correttamente compilandola ed eseguendola.Per compilare l'applicazione, scegliere dal menu Compila soluzioneselezionato Compilazione .Se l'applicazione viene compilata correttamente, eseguirla l'applicazione Avvia debug selezionando dal menu Debug .

    La procedura guidata crea automaticamente un'applicazione con una barra dei menu standard, una barra degli strumenti standard, una barra di stato standard e una barra di Outlook a sinistra della finestra con una visualizzazione Cartelle e una visualizzazione Calendario .

Per aggiungere il controllo elenco della shell alla visualizzazione del documento

  1. In questa sezione, si aggiungerà un'istanza di CMFCShellListCtrl alla visualizzazione della procedura guidata.Aprire il file di intestazione visualizzazione facendo doppio clic MFCShellControlsView.h in Esplora soluzioni.

    Individuare la direttiva di #pragma once nella parte superiore del file di intestazione.Immediatamente sotto di aggiungere il codice per includere il file di intestazione per CMFCShellListCtrl:

    #include <afxShellListCtrl.h>
    

    Aggiungere una variabile membro di tipo CMFCShellListCtrl.Innanzitutto, individuare il commento seguente nel file di intestazione:

    // Generated message map functions
    

    Immediatamente sopra tale commento aggiungere il codice seguente:

    private:
        CMFCShellListCtrl m_wndList;
    
  2. Creazione guidata applicazione MFC È già stato creato un oggetto di CMFCShellTreeCtrl nella classe di CMainFrame , ma è un membro protetto.Accedremo successivamente questo oggetto.Di conseguenza, creare ora una funzione di accesso.Aprire il file di intestazione MainFrm.h facendo doppio clic in Esplora soluzioni.Individuare il commento seguente:

    // Attributes
    

    Immediatamente sotto, aggiungere la seguente dichiarazione del metodo:

    public:
        CMFCShellTreeCtrl& GetShellTreeCtrl();
    

    Successivamente, aprire il file di origine di MainFrm.cpp facendo doppio clic in Esplora soluzioni.Nella parte inferiore del file, aggiungere la definizione seguente del metodo:

    CMFCShellTreeCtrl& CMainFrame::GetShellTreeCtrl()
    {
        return m_wndTree;
    }
    
  3. Ora aggiorniamo la classe di CMFCShellControlsView per gestire il messaggio di Windows di WM_CREATE .Aprire il file di intestazione MFCShellControlsView.h e fare clic sulla riga di codice:

    class CMFCShellControlsView : public CView
    

    Successivamente, nella finestra Proprietà , fare clic sull'icona Messaggi .Scorrere fino al messaggio di WM_CREATE .Dall'elenco a discesa accanto a WM_CREATE, **<Add> *** OnCreate *****selezionato.In questo modo viene creato un gestore messaggi per suggerimenti e aggiorna automaticamente la mappa messaggi MFC.

    Nel metodo di OnCreate ora creato il termine oggetto di CMFCShellListCtrl .Individuare la definizione del metodo di OnCreate nel file di origine MFCShellControlsView.cpp e sostituire l'implementazione con il codice seguente:

    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. Ripetere il passaggio precedente ma per il messaggio di WM_SIZE .In questo modo la visualizzazione di applicazioni a ridisegnarsi ogni volta che un utente modifica la dimensione della finestra dell'applicazione.Sostituire la definizione del metodo di OnSize con il codice seguente:

    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. L'ultimo passaggio consiste nel connettersi gli oggetti di CMFCShellListCtrl e di CMFCShellTreeCtrl tramite il metodo di CMFCShellTreeCtrl::SetRelatedList .Dopo avere chiamato questo metodo, CMFCShellListCtrl automaticamente visualizzare il contenuto dell'elemento selezionato in CMFCShellTreeCtrl.A questo punto si entrerà in questo metodo di OnActivateView , sottoposto a override da CView::OnActivateView.

    Nel file di intestazione MFCShellControlsView.h, nella dichiarazione di classe di CMFCShellControlsView , aggiungere la seguente dichiarazione del metodo:

    protected:
        virtual void OnActivateView(BOOL bActivate,
            CView* pActivateView,
            CView* pDeactiveView);
    

    Successivamente, aggiungere la definizione di questo metodo al file di origine di 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);
    }
    

    Poiché tali metodi di chiamata da CMainFrame classe, è necessario aggiungere una direttiva di #includeinizio del file di origine di MFCShellControlsView.cpp:

    #include "MainFrm.h"
    
  6. Verificare che l'applicazione sia stata creata correttamente compilandola ed eseguendola.Per compilare l'applicazione, scegliere dal menu Compila soluzioneselezionato Compilazione .Se l'applicazione viene compilata correttamente, eseguire Avvia debug selezionando dal menu Debug .

    È possibile visualizzare i dettagli per l'elemento selezionato in CMFCShellTreeCtrl nel riquadro di visualizzazione.Quando si fa clic su un nodo in CMFCShellTreeCtrl, CMFCShellListCtrl verrà automaticamente aggiornato.Inoltre, se si fa doppio clic su una cartella in CMFCShellListCtrl, CMFCShellTreeCtrl deve essere automaticamente aggiornato.

    Fare clic con il pulsante destro del mouse su qualsiasi elemento nel controllo struttura ad albero o nel controllo elenco.Notare che si ottiene lo stesso menu di scelta rapida come se si utilizza Esplora file effettivo.

Passaggi successivi

  • La procedura guidata ha creato una barra di Outlook con un riquadro Cartelle che un riquadro Calendario .Probabilmente non è utile disporre di un riquadro Calendario in una finestra di esplorazione.Di conseguenza, è ora rimuovere tale riquadro.

  • CMFCShellListCtrl supporta i file di visualizzazione in modi diversi, come Icone grandi, Icone piccole, Elencoe Dettagli.Aggiornare l'applicazione implementare questa funzionalità.Suggerimento: vedere Esempi di Visual C++.

Vedere anche

Altre risorse

Procedure dettagliate (MFC)