A classe CFileDialog encapsula a caixa de diálogo file comum do Windows. Caixas de diálogo de arquivo ComComumComum fornecem maneira fácil de implementar arquivo abrir e arquivo Salvar como diálogo caixas (bem como outras caixas de diálogo de seleção de arquivo) de uma maneira consistente ComComum os padrões do Windows.
Você pode usar CFileDialog "como estão" com o construtor fornecido, ou você pode derivar sua própria classe de caixa de diálogo de CFileDialog e gravar um construtor para atender às suas necessidades. Em qualquer caso, essas caixas de diálogo comportará como caixas de diálogo padrão do Microsoft Foundation Classe porque eles são derivados da classe CCommonDialog.
Para usar um objeto de CFileDialog , primeiro crie o objeto usando o Construtor de CFileDialog . Depois que a caixa de diálogo tiver sido criada, você pode definir ou modificar quaisquer valores na estrutura de m_ofn para inicializar os valores ou Estados de controles da caixa de diálogo. A estrutura de m_ofn é do tipo OPENFILENAME. Para obter mais informações, consulte o OPENFILENAME estrutura na documentação do Win32 SDK.
Após inicializar controles da caixa de diálogo, chame a função de membro DoModal para exibir a caixa de diálogo e permitir que o usuário insira o caminho e arquivo. DoModal retorna se o usuário selecionou OK (IDOK) ou o botão Cancelar (IDCANCEL).
Se DoModal retorna IDOK, você pode usar uma das funções de membro público do CFileDialogpara recuperar as informações entrada pelo usuário.
CFileDialog inclui vários membros protegidos que permitem que você faça manipulação Personalizar de violações de compartilhar, validação do nome do arquivo, e caixa de listagem Alterar notificação. Esses membros protegidos são funções de retorno de chamada que a maioria dos aplicativos não precisará usar, desde que a manipulação usar como padrão é feito automaticamente. Entradas de mapa de Mensagemens para essas funções não são necessárias porque são funções virtuais padrão.
Você pode usar o Windows CommDlgExtendedError função para determinar se ocorreu um erro durante a inicialização da caixa de diálogo e para saber mais sobre o erro.
A destruição de objetos de CFileDialog é manipulada automaticamente. Não é necessário chamar CDialog:: EndDialog.
Para permitir que o usuário selecionar Múltiplo arquivos, defina o Sinalizar de OFN_ALLOWMULTISELECT antes de chamar DoModal. Você precisará fornecer seu próprio buffer de nome de arquivo para acomodar a lista retornada de Múltiplo nomes de arquivo. Fazer isso, substituindo m_ofn. lpstrFile por um ponteiro para um buffer que você tiver alocado, depois de construir a CFileDialog, mas antes de chamar DoModal. Além disso, você deve definir m_ofn.nMaxFile com o número de caracteres no buffer apontado por m_ofn. lpstrFile.
CFileDialog depende o COMMDLG.Arquivo DLL que acompanha o Windows versões 3.1 e posteriores.
Se você derivar uma Novo classe de CFileDialog, você pode usar um mapa da mensagem para lidar com todas as mensagens. Para estender a mensagem padrão manipulação, derivar uma classe de CWnd, adicionar uma mensagem de mapear para a Novo classe e fornecer funções de membro para as novas mensagens. Você não precisará fornecer uma função de gancho para personalizar a caixa de diálogo.
Para personalizar a caixa de diálogo, derive uma classe de CFileDialog, fornecer um modelo de diálogo personalizada e adicionar um mapa da mensagem para Processoar as mensagens de notificação dos controles estendidos. As mensagens não processadas devem ser passadas para a classe base.
Personalizando a função do gancho não é necessária.
Para obter mais informações sobre como usar CFileDialog, consulte Classes de caixa de diálogo comum no Guia do programador do Visual C++.
# include lt;afxdlgs.h>