Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste passo a passo, você criará um aplicativo semelhante ao Explorador de Arquivos. Você criará uma janela com dois painéis. O painel esquerdo conterá um objeto CMFCShellTreeCtrl 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
No Visual Studio 2017 e posterior, o suporte ao MFC é um componente opcional. Para instalá-lo, abra o Instalador do Visual Studio no menu Iniciar do Windows. Localize a versão do Visual Studio que você está usando e escolha o botão Modificar . Verifique se o bloco Desenvolvimento de Área de Trabalho com C++ está marcado. Em Componentes Opcionais, verifique o botão De suporte do MFC .
Este passo a passo pressupõe que você configurou o Visual Studio para usar as Configurações gerais de desenvolvimento. Se você estiver usando uma configuração de desenvolvimento diferente, algumas janelas do Visual Studio que usamos neste passo a passo podem não ser exibidas por padrão.
Para criar um novo aplicativo MFC usando o Assistente de Aplicativo MFC
Essas etapas variam dependendo de qual versão do Visual Studio você está usando. Para ver a documentação da sua versão preferencial do Visual Studio, use o controle seletor de Versão. Ele é encontrado na parte superior da tabela de conteúdo nesta página.
Para criar um projeto MFC no Visual Studio
No menu principal, escolha Arquivo>Novo>Projeto para abrir a caixa de diálogo Criar um projeto.
Na caixa de pesquisa na parte superior, digite MFC e escolha o Aplicativo MFC na lista de resultados.
Clique em Próximo. Na próxima página, insira um nome para o projeto e especifique o local do projeto, se desejado.
Escolha o botão Criar para criar o projeto.
Depois que o Assistente de Aplicativo MFC for exibido, use as seguintes opções:
Escolha Tipo de Aplicativo à esquerda. Em seguida, selecione Documento único e selecione o suporte à arquitetura de Documento/Exibição. No estilo Projeto, selecione o Visual Studio e, na lista suspensa estilo visual e cores , selecione Office 2007 (tema azul).
No painel Suporte a Documentos Compostos , selecione Nenhum.
Não faça nenhuma alteração no painel Propriedades do Modelo de Documento .
No painel Recursos da Interface do Usuário , verifique se a opção Usar uma barra de menus e barra de ferramentas está selecionada. Deixe todas as outras opções como estão.
No painel Recursos Avançados , selecione controles ActiveX, manifesto de controle comum e opção de painel de navegação . Deixe todo o resto inalterado. A opção Painel de Navegação fará com que o assistente crie o painel à esquerda da janela com um
CMFCShellTreeCtrljá inserido.Não faremos nenhuma alteração no painel Classes Geradas , portanto, clique em Concluir para criar seu novo projeto MFC.
Para criar um projeto MFC no Visual Studio 2017 ou anterior
Use o Assistente de Aplicativo MFC para criar um novo aplicativo MFC. Para executar o assistente, no menu Arquivo , selecione Novo e, em seguida, selecione Project. A caixa de diálogo Novo Projeto será exibida.
Na caixa de diálogo Novo Projeto, expanda o nó Visual C++ no painel Tipos de Projeto e selecione MFC. Em seguida, no painel Modelos , selecione Aplicativo MFC. Digite um nome para o projeto, como
MFCShellControlse clique em OK.Depois que o Assistente de Aplicativo MFC for exibido, use as seguintes opções:
No painel Tipo de Aplicativo, no Tipo de aplicativo, desmarque a opção Documentos com guias. Em seguida, selecione Documento único e selecione Suporte à arquitetura de Documento/Exibição. No estilo Projeto, selecione o Visual Studio e, na lista suspensa estilo visual e cores , selecione Office 2007 (tema azul).
No painel Suporte a Documentos Compostos , selecione Nenhum.
Não faça nenhuma alteração no painel Cadeias de Caracteres de Modelo de Documento .
No painel Suporte ao Banco de Dados (Visual Studio 2015 ou anterior), selecione Nenhum porque o aplicativo não usa um banco de dados.
No painel Recursos da Interface do Usuário , verifique se a opção Usar uma barra de menus e barra de ferramentas está selecionada. Deixe todas as outras opções como estão.
No painel Recursos Avançados , em Recursos Avançados, selecione apenas controles ActiveX e Manifesto de Controle Comum. Em painéis de quadro avançados, selecione apenas a opção Painel de Navegação . Isso fará com que o assistente crie o painel à esquerda da janela com um
CMFCShellTreeCtrljá inserido.Não faremos nenhuma alteração no painel Classes Geradas , portanto, clique em Concluir para criar seu novo projeto MFC.
Verifique se o aplicativo foi criado com êxito compilando e executando-o. Para criar o aplicativo, no menu Compilar , selecione Criar Solução. Se o aplicativo for construído com sucesso, execute o aplicativo selecionando Iniciar Depuração no menu Depurar.
O assistente cria automaticamente um aplicativo que tem uma barra de menus padrão, uma barra de ferramentas padrão, uma barra de status padrão e uma barra do Outlook à esquerda da janela, com uma exibição de Pastas e uma exibição de Calendário.
Para adicionar o controle de lista de shells à exibição do documento
Nesta seção, você adicionará uma instância de
CMFCShellListCtrlà exibição que o assistente criou. Abra o arquivo de cabeçalho de exibição clicando duas vezes em MFCShellControlsView.h no Gerenciador de Soluções.Localize a
#pragma oncediretiva perto da parte superior do arquivo de cabeçalho. Imediatamente abaixo dele, adicione este código para incluir o arquivo de cabeçalho paraCMFCShellListCtrl:#include <afxShellListCtrl.h>Agora adicione uma variável de membro do tipo
CMFCShellListCtrl. Primeiro, localize o seguinte comentário no arquivo de cabeçalho:// Generated message map functionsImediatamente acima desse comentário, adicione este código:
private: CMFCShellListCtrl m_wndList;O Assistente de Aplicativo MFC já criou um
CMFCShellTreeCtrlobjeto naCMainFrameclasse, mas é um membro protegido. Acessaremos o objeto mais tarde, portanto, crie um acessador para ele agora. Abra o arquivo de cabeçalho MainFrm.h clicando duas vezes nele no Gerenciador de Soluções. Localize o seguinte comentário:// AttributesImediatamente sob ele, adicione a seguinte declaração de método:
public: CMFCShellTreeCtrl& GetShellTreeCtrl();Em seguida, abra o arquivo de origem MainFrm.cpp clicando duas vezes nele no Gerenciador de Soluções. Na parte inferior desse arquivo, adicione a seguinte definição de método:
CMFCShellTreeCtrl& CMainFrame::GetShellTreeCtrl() { return m_wndTree; }Agora, atualizamos a
CMFCShellControlsViewclasse para lidar com a mensagem doWM_CREATEWindows. Abra a janela Exibição de Classe e selecione aCMFCShellControlsViewclasse. Clique com o botão direito do mouse e selecione Propriedades.Em seguida, no Assistente de Classe, clique na guia Mensagens . Role para baixo até encontrar a
WM_CREATEmensagem. Na lista suspensa ao lado deWM_CREATE, selecione <Adicionar> OnCreate. O comando cria um manipulador de mensagens para nós e atualiza automaticamente o mapa de mensagens MFC.No método
OnCreate, agora criaremos o objetoCMFCShellListCtrl. Localize a definição doOnCreatemétodo no arquivo de origem MFCShellControlsView.cpp e substitua sua implementação pelo 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; }Repita a etapa anterior, mas para a mensagem
WM_SIZE. Isso fará com que o modo de exibição de aplicativos seja redesenhado sempre que um usuário alterar o tamanho da janela do aplicativo. Substitua a definição doOnSizemétodo pelo 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); }A última etapa é conectar os objetos
CMFCShellTreeCtrleCMFCShellListCtrlusando o método CMFCShellTreeCtrl::SetRelatedList. Depois de chamarCMFCShellTreeCtrl::SetRelatedList, oCMFCShellListCtrlexibirá automaticamente o conteúdo do item selecionado noCMFCShellTreeCtrl. Conectamos os objetos no métodoOnActivateView, que é substituído do CView::OnActivateView.No arquivo de cabeçalho MFCShellControlsView.h, dentro da
CMFCShellControlsViewdeclaraçã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 do método ao 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); }Como estamos chamando métodos da
CMainFrameclasse, devemos adicionar uma#includediretiva na parte superior do arquivo de origem MFCShellControlsView.cpp:#include "MainFrm.h"Verifique se o aplicativo foi criado com êxito compilando e executando-o. Para criar o aplicativo, no menu Compilar , selecione Criar Solução. Se o aplicativo for construído com sucesso, execute-o selecionando Iniciar Depuração no menu Depurar.
Agora você deve ver os detalhes do item selecionado no
CMFCShellTreeCtrlpainel de exibição. Quando você clicar em um nó noCMFCShellTreeCtrl, oCMFCShellListCtrlserá atualizado automaticamente. Da mesma forma, se você der um duplo clique em uma pasta naCMFCShellListCtrl, oCMFCShellTreeCtrldeverá ser atualizado automaticamente.Clique com o botão direito do mouse em qualquer item no controle de árvore ou no controle de lista. Você obtém o mesmo menu de contexto que se estivesse usando o Explorador de Arquivos real.
Próximas etapas
O assistente criou uma barra do Outlook com um painel Pastas e um painel Calendário. Provavelmente não faz sentido ter um painel Calendário em uma janela do Explorer , então remova esse painel agora.
O
CMFCShellListCtrlsuporte à exibição de arquivos em modos diferentes, como Ícones Grandes, Ícones Pequenos, Lista e Detalhes. Atualize seu aplicativo para implementar essa funcionalidade. Dica: consulte exemplos do Visual C++.