Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Nesta explicação passo a passo, você criará um aplicativo que se parece com o Windows Explorer.Você irá criar uma janela que contém dois painéis.Painel da esquerda conterá um CMFCShellTreeCtrl objeto que exibe sua área de trabalho em uma exibição hierárquica.O painel direito conterá um CMFCShellListCtrl que mostra os arquivos na pasta selecionada no painel esquerdo.
Pré-requisitos
Para concluir esta explicação passo a passo, você deve instalar o Visual C++ 2008 Feature Pack ou instalar Visual Studio 2008 serviço empacotar 1.
Esta explicação passo a passo presume que você configurou Visual Studio Para usar Configurações Geral de desenvolvimento.Se você estiver usando uma configuração de desenvolvimento diferentes, algumas Visual Studio janelas que usamos nesta explicação passo a passo podem não ser exibidas por padrão.
Para criar um novo aplicativo MFC usando o Assistente de aplicativo do MFC
Use o MFC Application assistente para criar um novo aplicativo MFC.Para executar o assistente, da Arquivo selecionar menu Novoe, em seguida, selecionar Projeto.The Novo projeto caixa de diálogo será exibida.
No Novo projeto caixa de diálogo, expandir o O Visual C++ nó o Tipos de projeto painel e selecionar MFC.Em seguida, no Modelos painel, selecionar Aplicativo MFC.Digite um nome para o projeto such sistema autônomo MFCShellControls e clicar OK.The MFC aplicativo assistente será exibida.
No MFC aplicativo assistente diálogo, clicar Próximo.The Tipo de aplicativo painel será exibido.
Sobre o Tipo de aplicativo painel, em Tipo de aplicativo, desmarcar o Documentos com guias opção.Em seguida, selecionar Único documento e selecionar Documento/exibir suporte de arquitetura.Em Estilo do projeto, selecionar O Visual Studioe a partir de Cores e estilo Visual suspensa lista selecionar O Office 2007 (tema azul).Deixe todas sistema autônomo outras opções sistema autônomo estão.clicar Próximo para exibir o Compostos de suporte do documento painel.
Sobre o Compostos de suporte do documento painel, selecionar Nenhum.clicar Próximo para exibir o Strings de modelo de documento painel.
Não faça qualquer alteração de Strings de modelo de documento painel.clicar Próximo para exibir o Suporte de banco de dados painel.
Sobre o Suporte de banco de dados painel, selecionar Nenhum porque este aplicativo não usa um banco de dados.clicar Próximo para exibir o Recursos de interface do usuário painel.
Sobre o Recursos de interface do usuário painel, certifique-se de que o Use uma BAR de menus e BAR de ferramentas opção está selecionada.Deixe todas sistema autônomo outras opções sistema autônomo estão.clicar Próximo para exibir o Recursos avançados painel.
Sobre o Recursos avançados painel, em Recursos avançados, selecionar apenas Os controles ActiveX and Manifesto de controle comuns.Em Quadro avançados painéis, selecionar apenas o Painel de navegação opção.Isso fará com que o Assistente para criar o painel à esquerda da janela com um CMFCShellTreeCtrl já incorporados. clicar Próximo para exibir o Classes geradas painel.
Não vamos fazer alterações à Classes geradas painel.Por isso, clicar Concluir para criar seu novo projeto MFC.
Verificar se o aplicativo foi criado com êxito, criando e executando-o.Para criar o aplicativo do Compilação selecionar menu Criar solução.Se o aplicativo criado com êxito, execute o aplicativo selecionando Iniciar a depuração from the Depurar menu.
O assistente cria automaticamente um aplicativo que tenha uma BAR de menus padrão, uma BAR de ferramentas padrão, uma BAR de status padrão e uma BAR do Outlook à esquerda da janela com um Pastas modo de exibição de e umCalendáriomodo de exibição de .
Para adicionar o controle de lista do shell para o modo de exibição de documento
Nesta seção, você irá adicionar uma instância de CMFCShellListCtrl para o modo de exibição que o assistente criou. em aberto o arquivo de cabeçalho de modo de exibição clicando duas vezes em MFCShellControlsView.h no O gerenciador de soluções.
localizar o #pragma once diretiva na parte superior do arquivo de cabeçalho. Imediatamente abaixo dele, 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, localizar o comentário a seguir no arquivo de cabeçalho:
// Generated message map functionsImediatamente acima desse comentário adicione este código:
private: CMFCShellListCtrl m_wndList;The MFC aplicativo assistente já criada um CMFCShellTreeCtrl objeto na CMainFrame classe, mas é um membro protegido. Nós poderão acessar esse objeto posteriormente.Portanto, criar um acessador para ele.em aberto o arquivo de cabeçalho MainFrm.h clicando duas vezes no O gerenciador de soluções.localizar o comentário a seguir:
// AttributesImediatamente abaixo dela, adicione a declaração de método a seguir:
public: CMFCShellTreeCtrl& GetShellTreeCtrl();Em seguida, abra o MainFrm.cpp arquivo de fonte clicando duas vezes no O gerenciador de soluções.Na parte inferior desse arquivo, adicione a definição de método a seguir:
CMFCShellTreeCtrl& CMainFrame::GetShellTreeCtrl() { return m_wndTree; }Agora podemos atualizar o CMFCShellControlsView classe para lidar com o WM_CREATE mensagem do Windows. Abra o arquivo de cabeçalho MFCShellControlsView.h e clicar nesta linha de código:
class CMFCShellControlsView : public CViewEm seguida, no Propriedades janela, clicar no Mensagens ícone.Role para baixo até encontrar o WM_CREATE mensagem. Na lista ao lado de suspensaWM_CREATE, selecionar <add>OnCreate.Isso cria um manipulador de mensagens para nós e atualiza automaticamente o MAP da mensagem MFC.
No OnCreate método Agora criaremos nosso CMFCShellListCtrl objeto. Localizar o OnCreate definição do método na MFCShellControlsView.cpp arquivo de fonte e substituir sua implementação com o código a seguir:
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; }Repetir a etapa anterior, mas para o WM_SIZE mensagem. Isso fará com que o modo de exibição de aplicativos seja redesenhado sempre que um usuário altera o dimensionar da janela do aplicativo.Substituir a definição para o OnSize método com o código a seguir:
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); }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 Sumário do item selecionado na CMFCShellTreeCtrl. Faremos isso no OnActivateView método, que é substituído de CView::OnActivateView.
No arquivo de cabeçalho MFCShellControlsView.h, dentro de CMFCShellControlsView declaração da classe, adicione a declaração de método a seguir:
protected: virtual void OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView);Em seguida, adicione a definição para esse método para o MFCShellControlsView.cpp arquivo de fonte:
void CMFCShellControlsView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView) { if (bActivate && AfxGetMainWnd() != NULL) { ((CMainFrame*)AfxGetMainWnd())->GetShellTreeCtrl().SetRelatedList(&m_wndList); } CView::OnActivateView(bActivate, pActivateView, pDeactiveView); }Uma vez que está chamando métodos do CMainFrame classe, é necessário adicionar um #include diretiva na parte superior do arquivo de fonte MFCShellControlsView.cpp:
#include "MainFrm.h"Verificar se o aplicativo foi criado com êxito, criando e executando-o.Para criar o aplicativo do Compilação selecionar menu Criar solução.Se o aplicativo criado com êxito, execute-o selecionando Iniciar a depuração from the Depurar menu.
Agora você deve ver os detalhes para o item selecionado no CMFCShellTreeCtrl no painel de exibição. Quando você clica em um nó no CMFCShellTreeCtrl, o CMFCShellListCtrl será atualizado automaticamente. Da mesma forma, se você clicar duas vezes em uma pasta no CMFCShellListCtrl, o CMFCShellTreeCtrl deve ser atualizado automaticamente.
Qualquer item no controle de árvore ou no controle de lista clicar com botão direito do mouse.Observe que você obter o mesmo menu de contexto sistema autônomo se estivesse usando o Windows Explorer real.
Próximas etapas
O assistente criou uma BAR do Outlook com um Pastas painel e um Calendário painel.Provavelmente não faz sentido ter um Calendário painel em uma janela do Explorer.Por isso, remova esse painel agora.
The CMFCShellListCtrl oferece suporte a exibição de arquivos em modos diferentes, sistema autônomo Ícones grandes, Ícones pequenos, Lista, and Detalhes.Atualize seu aplicativo para implementar essa funcionalidade.Dica: see Exemplo do Explorer: Aplicativo do MFC Windows Explorer.