Compartilhar via


Passo a passo: Usando os novos controles MFC Shell

Esta explicação passo a passo, você criará um aplicativo semelhante ao Gerenciador de arquivos.Você irá criar uma janela que contém dois painéis.O painel esquerdo contém uma CMFCShellTreeCtrl objeto exibe a área de trabalho em uma exibição hierárquica.O painel direito contém um CMFCShellListCtrl que mostra os arquivos na pasta selecionada no painel esquerdo.

Pré-requisitos

Esta explicação passo a passo assume que você configurou Visual Studio usar General Development Settings.Se você estiver usando uma configuração de desenvolvimento diferentes, algumas Visual Studio windows que usamos esta explicação passo a passo não podem ser exibidos por padrão.

Para criar um novo aplicativo do MFC usando o Assistente de aplicativo do MFC

  1. Use o MFC Application Wizard para criar um novo aplicativo do MFC.Para executar o assistente a partir do arquivo menu Selecionar novoe selecione projeto.O Novo projeto caixa de diálogo será exibida.

  2. No Novo projeto diálogo caixa, expanda o Visual C++ nó de tipos de projeto painel e selecione MFC.Em seguida, no modelos de , selecione Aplicativo MFC.Digite um nome para o projeto, como MFCShellControls e clique em OK.O MFC Application Wizard será exibida.

  3. No MFC Application Wizard caixa de diálogo, clique em próximo.O Tipo de aplicativo painel será exibido.

  4. Sobre o Tipo de aplicativo painel, em tipo de aplicativo, limpar o documentos com guias opção.Em seguida, selecione documento único e selecione suporte a arquitetura de exibição do documento.Em o estilo de projeto, selecione Visual Studioe o cores e estilo Visual suspensa lista, selecione Office 2007 (tema azul).Deixe todas as outras opções como estão.Clique em próximo para exibir o Suporte a documentos compostos painel.

  5. Sobre o Suporte a documentos compostos , selecione Nenhum.Clique em próximo para exibir o Documento modelo seqüências painel.

  6. Não faça quaisquer alterações para o Documento modelo seqüências painel.Clique em próximo para exibir o Suporte de banco de dados painel.

  7. Sobre o Suporte de banco de dados painel, selecione Nenhum porque este aplicativo não usar um banco de dados.Clique em próximo para exibir o Recursos de Interface do usuário painel.

  8. No Recursos de Interface do usuário painel, certifique-se de que o usar uma barra de menu e barra de ferramentas opção é selecionada.Deixe todas as outras opções como estão.Clique em próximo para exibir o Advanced Features painel.

  9. No Recursos avançados painel, em recursos avançados, selecione apenas controles de ActiveX e Manifesto de controle comuns.Em avançados painéis de quadro, selecione apenas o painel de navegação opção.Isso fará com que o assistente criar o painel à esquerda da janela com um CMFCShellTreeCtrl já incorporados.Clique em próximo para exibir o Classes geradas painel.

  10. Não vamos fazer alterações para o Classes geradas painel.Portanto, clique em Concluir para criar seu novo projeto MFC.

  11. Verifique se o aplicativo foi criado com êxito, criando e executando-o.Criar o aplicativo da Build menu Selecionar Build Solution.Se o aplicativo foi criado com êxito, execute o aplicativo selecionando Start Debugging do Debug menu.

    O assistente cria automaticamente um aplicativo que tenha uma barra de menu padrão, uma barra de ferramentas padrão, uma barra de status padrão e uma barra do Outlook à esquerda da janela com um pastas modo de exibição e um calendário exibir.

Para adicionar o controle de lista do shell para o modo de exibição de documento

  1. Nesta seção, você irá adicionar uma instância de CMFCShellListCtrl no modo de exibição que o assistente criou.Abra o arquivo de cabeçalho de exibição clicando duas vezes em MFCShellControlsView.h na Solution Explorer.

    Localize o #pragma once diretiva na parte superior do arquivo de cabeçalho.Logo abaixo ela adicione este código para incluir o arquivo de cabeçalho para CMFCShellListCtrl:

    #include <afxShellListCtrl.h>
    

    Agora, adicione uma variável de membro do tipo CMFCShellListCtrl.Primeiro, localize o comentário a seguir no arquivo de cabeçalho:

    // Generated message map functions
    

    Imediatamente acima desse comentário adicione este código:

    private:
        CMFCShellListCtrl m_wndList;
    
  2. O MFC Application Wizard já criou um CMFCShellTreeCtrl de objeto na CMainFrame classe, mas é um membro protegido.Estamos irá acessar esse objeto posteriormente.Portanto, crie um acessador para ele agora.Abra o arquivo de cabeçalho MainFrm.h clicando duas vezes na Solution Explorer.Localize o comentário a seguir:

    // Attributes
    

    Imediatamente abaixo dela, adicione a seguinte declaração de método:

    public:
        CMFCShellTreeCtrl& GetShellTreeCtrl();
    

    Em seguida, abra o arquivo de origem MainFrm.cpp clicando duas vezes na Solution Explorer.Na parte inferior do arquivo, adicione a seguinte definição de método:

    CMFCShellTreeCtrl& CMainFrame::GetShellTreeCtrl()
    {
        return m_wndTree;
    }
    
  3. Agora podemos atualizar o CMFCShellControlsView classe para manipular a WM_CREATE mensagem do windows.Abra o arquivo de cabeçalho MFCShellControlsView.h e clique nesta linha de código:

    class CMFCShellControlsView : public CView
    

    Em seguida, no Propriedades janela, clique no mensagens ícone.Role para baixo até encontrar o WM_CREATE mensagem.Na lista ao lado de suspensa WM_CREATE, selecione <Add> OnCreate.Isso cria um manipulador de mensagens para nós e atualiza automaticamente o mapa da mensagem MFC.

    No OnCreate método agora criaremos nosso CMFCShellListCtrl objeto.Encontrar o OnCreate definição de método de MFCShellControlsView.cpp arquivo de origem e substituir sua implementação com o seguinte código:

    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. Repita a etapa anterior, mas para o WM_SIZE mensagem.Isso fará com que a exibição de aplicativos seja redesenhado sempre que um usuário altera o tamanho da janela do aplicativo.Substituir a definição para o OnSize método com o seguinte código:

    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. A última etapa é conectar o CMFCShellTreeCtrl e CMFCShellListCtrl objetos usando o CMFCShellTreeCtrl::SetRelatedList método.Depois de chamar esse método, o CMFCShellListCtrl exibirá automaticamente o conteúdo do item selecionado da CMFCShellTreeCtrl.Faremos isso OnActivateView método substituído de CView::OnActivateView.

    No arquivo de cabeçalho MFCShellControlsView.h, dentro do CMFCShellControlsView declaração de classe, adicione a seguinte declaração de método:

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

    Em seguida, adicione a definição para este método no arquivo de origem 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);
    }
    

    Porque estamos chamando métodos de CMainFrame classe, é necessário adicionar um #include diretiva na parte superior do arquivo de origem MFCShellControlsView.cpp:

    #include "MainFrm.h"
    
  6. Verifique se o aplicativo foi criado com êxito, criando e executando-o.Criar o aplicativo da Build menu Selecionar Build Solution.Se o aplicativo foi criado com êxito, execute-o selecionando Start Debugging do Debug menu.

    Agora você deve ver os detalhes do item selecionado da CMFCShellTreeCtrl no painel de exibição.Quando você clica em um nó de CMFCShellTreeCtrl, o CMFCShellListCtrl serão atualizados automaticamente.Da mesma forma, se clicar duas vezes em uma pasta de CMFCShellListCtrl, o CMFCShellTreeCtrl deve ser atualizado automaticamente.

    À direita, clique em qualquer item no controle de árvore ou no controle de lista.Observe que você obtenha o mesmo menu de contexto como se estivesse usando o Explorador de arquivo real.

Próximas etapas

  • O assistente criou uma barra do Outlook com ambos um pastas painel e um calendário painel.Provavelmente não faz sentido ter um calendário painel em uma janela do Explorer.Portanto, remova esse painel agora.

  • O CMFCShellListCtrl suporta a exibição de arquivos em diferentes modos, como Ícones grandes, Ícones pequenos, lista, e detalhes.Atualize seu aplicativo para implementar essa funcionalidade.Hint: see Exemplos do Visual C++.

Consulte também

Outros recursos

Explicações passo a passo (MFC)