Compartilhar via


Classe CFileDialog

Encapsula a caixa de diálogo comuns que é usada para o arquivo operações aberta ou salvamento de arquivo.

class CFileDialog : public CCommonDialog

Membros

Construtores public

Nome

Descrição

CFileDialog::CFileDialog

constrói um objeto de CFileDialog .

métodos públicos

Nome

Descrição

CFileDialog::AddCheckButton

Adicionar um botão de verificação para a caixa de diálogo.

CFileDialog::AddComboBox

Adiciona uma caixa de combinação para a caixa de diálogo.

CFileDialog::AddControlItem

Adiciona um item a um controle recipiente na caixa de diálogo.

CFileDialog::AddEditBox

Adiciona uma caixa de edição para a caixa de diálogo.

CFileDialog::AddMenu

Adicionar um menu para a caixa de diálogo.

CFileDialog::AddPlace

sobrecarregado. Adiciona uma pasta para a lista de locais disponíveis para o usuário abrir ou salvar itens.

CFileDialog::AddPushButton

Adicionar um botão a caixa de diálogo.

CFileDialog::AddRadioButtonList

Adiciona um grupo de botões de opção (também conhecido como o botão de opção) para a caixa de diálogo.

CFileDialog::AddSeparator

Adiciona um separador para a caixa de diálogo.

CFileDialog::AddText

Adiciona conteúdo de texto para a caixa de diálogo.

CFileDialog::ApplyOFNToShellDialog

Atualiza o estado de CFileDialog para coincidir com os parâmetros e sinalizadores armazenados na variável de membro de m_ofn .

CFileDialog::DoModal

Exibe a caixa de diálogo e permite que o usuário para fazer uma seleção.

CFileDialog::EnableOpenDropDown

Permite uma lista suspensa no botão de Abrir ou de Salvar na caixa de diálogo.

CFileDialog::EndVisualGroup

Para a adição de elementos a um grupo visual na caixa de diálogo.

CFileDialog::GetCheckButtonState

Obtém o estado atual de um botão de verificação caixa de seleção () na caixa de diálogo.

CFileDialog::GetControlItemState

Obtém o estado atual de um item em um controle de contêiner encontrado na caixa de diálogo.

CFileDialog::GetControlState

Obtém a visibilidade atual e os estados ativados de um determinado controle.

CFileDialog::GetEditBoxText

Obtém o texto atual em um controle de caixa de edição.

CFileDialog::GetFileExt

Retorna a extensão do arquivo selecionado.

CFileDialog::GetFileName

Retorna o nome do arquivo selecionado.

CFileDialog::GetFileTitle

Retorna o título do arquivo selecionado.

CFileDialog::GetFolderPath

Retorna o caminho da pasta ou diretório atualmente aberto para um Abrir ou o estilo da caixa de diálogo comuns de Salvar como .

CFileDialog::GetIFileDialogCustomize

Retorna o objeto COM interno para um objeto personalizado de CFileDialog .

CFileDialog::GetIFileOpenDialog

Retorna o objeto COM interno para CFileDialog que é usado como uma caixa de diálogo de arquivo de Abrir .

CFileDialog::GetIFileSaveDialog

Retorna o objeto COM interno para CFileDialog que é usado como uma caixa de diálogo de arquivo de Salvar .

CFileDialog::GetNextPathName

Retorna o caminho completo do arquivo após selecionado.

CFileDialog::GetOFN

Recupera a estrutura de OPENFILENAME do objeto de CFileDialog .

CFileDialog::GetPathName

Retorna o caminho completo do arquivo selecionado.

CFileDialog::GetReadOnlyPref

Retorna o status somente leitura do arquivo selecionado.

CFileDialog::GetResult

Obtém a opção que o usuário fez na caixa de diálogo.

CFileDialog::GetResults

Obtém as opções de usuário em uma caixa de diálogo que permite a seleção múltipla.

CFileDialog::GetSelectedControlItem

Obtém um item específico de controles de contêiner especificados na caixa de diálogo.

CFileDialog::GetStartPosition

Retorna a posição do primeiro elemento da lista de nome de arquivo.

CFileDialog::HideControl

Ocultará o controle específico no estilo de um Abrir ou na caixa de diálogo comuns de Salvar como .

CFileDialog::IsPickFoldersMode

Determina se a caixa de diálogo atual no modo do selecionador da pasta.

CFileDialog::MakeProminent

Coloque um controle na caixa de diálogo para que ele seja comparada para fora a outros controles adicionados.

CFileDialog::RemoveControlItem

Remove um item de um controle recipiente na caixa de diálogo.

CFileDialog::SetCheckButtonState

Define o estado atual de um botão de verificação caixa de seleção () na caixa de diálogo.

CFileDialog::SetControlItemState

Define o estado atual de um item em um controle de contêiner encontrado na caixa de diálogo.

CFileDialog::SetControlItemText

Define o texto de um item do controle. por exemplo, o texto que acompanha um botão de opção ou um item em um menu.

CFileDialog::SetControlLabel

Define o texto associado com um controle, como o texto do botão ou um rótulo de caixa de edição.

CFileDialog::SetControlState

Define a visibilidade atual e os estados ativados de um determinado controle.

CFileDialog::SetControlText

Define o texto do controle específico no estilo de um Abrir ou na caixa de diálogo comuns de Salvar como .

CFileDialog::SetDefExt

Define a extensão de nome de arquivo padrão para um Abrir ou o estilo da caixa de diálogo comuns de Salvar como .

CFileDialog::SetEditBoxText

Define o texto atual em um controle de caixa de edição.

CFileDialog::SetProperties

Fornece um armazenamento de propriedade que define os valores padrão a ser usado para o item que está sendo salvo.

CFileDialog::SetSelectedControlItem

Define o estado selecionado de um item específico em um grupo de botões de opção ou caixa de combinação encontrado na caixa de diálogo.

CFileDialog::SetTemplate

Defina o modelo da caixa de diálogo para o objeto de CFileDialog .

CFileDialog::StartVisualGroup

Declara um grupo visual na caixa de diálogo. Chamadas subseqüentes a qualquer “adicionam” o método adicione esses elementos a esse grupo.

CFileDialog::UpdateOFNFromShellDialog

Atualiza os dados armazenados na variável de membro de m_ofn para coincidir com o estado atual da caixa de diálogo de arquivo.

métodos protegidos

Nome

Descrição

CFileDialog::OnButtonClicked

Chamado quando o botão é clicado.

CFileDialog::OnCheckButtonToggled

Chamado quando a caixa de seleção está marcada/não-verificada.

CFileDialog::OnControlActivating

Chamado quando o controle está ativa.

CFileDialog::OnFileNameChange

trata a mensagem de WM_NOTIFY CDN_SELCHANGE .

CFileDialog::OnFileNameOK

Valida o nome de arquivo digitado na caixa de diálogo.

CFileDialog::OnFolderChange

trata a mensagem de WM_NOTIFY CDN_FOLDERCHANGE .

CFileDialog::OnInitDone

trata a mensagem de WM_NOTIFY CDN_INITDONE .

CFileDialog::OnItemSelected

Chamado quando o item de contêiner está selecionado.

CFileDialog::OnLBSelChangedNotify

Permite que você execute ações personalizadas quando a seleção do arquivo muda.

CFileDialog::OnShareViolation

Violações de compartilhamento handles.

CFileDialog::OnTypeChange

trata a mensagem de WM_NOTIFY CDN_TYPECHANGE .

Membros públicos de dados

Nome

Descrição

CFileDialog::m_ofn

A estrutura de OPENFILENAME do windows. Fornece acesso aos parâmetros básicos da caixa de diálogo de arquivo.

Comentários

Caixas de diálogo comuns permite que você implemente caixas de diálogo de arquivo seleção, por exemplo, Abrir Arquivo e Salvar como, de uma maneira de que é consistente com padrões do windows.

Você pode usar CFileDialog como é fornecido com o construtor, ou você pode derivar sua própria classe da caixa de diálogo de CFileDialog e escrever um construtor para atender às suas necessidades. Em ambos os casos, essas caixas de diálogo se comportar como caixas de diálogo padrão MFC porque eles são derivadas de Classe CCommonDialog. CFileDialog depende do arquivo de COMMDLG.DLL que está incluído no windows.

A aparência e funcionalidade de CFileDialog com Windows Vista diferem das versões anteriores do windows. A opção CFileDialog automaticamente usa o novo estilo de Windows Vista sem alterações de código se um programa é compilado e executado em Windows Vista. Use o parâmetro de bVistaStyle no construtor para substituir manualmente esta atualização automática. A exceção à atualização automática é caixas de diálogo personalizadas. Não serão convertidos para o novo estilo. Para obter mais informações sobre o construtor, consulte CFileDialog::CFileDialog.

Dica

O sistema identificação do controle difere em Windows Vista de versões anteriores do windows quando você usa CFileDialog.Você deve atualizar todas as referências para os controles de CFileDialog no código antes que você possa mova seu projeto de uma versão anterior do windows.

Alguns métodos de CFileDialog não são suportados em Windows Vista. Verifique o tópico individual do método para obter informações sobre se o método é suportado. Além de isso, as seguintes funções herdadas não são suportadas em Windows Vista:

As mensagens do windows para a classe de CFileDialog varia com base no sistema operacional que você está usando. Por exemplo, o Windows XP não oferece suporte CDialog::OnCancel e CDialog::OnOK para a classe de CFileDialog . Em o entanto, Windows Vista suportar-los. Para obter mais informações sobre as mensagens diferentes que são geradas e a ordem em que eles são recebidos, consulte exemplo de CFileDialog: Ordem de eventos de log.

Para usar um objeto de CFileDialog , primeiro crie o objeto usando o construtor de CFileDialog . Depois que a caixa de diálogo foi construída, você pode definir ou modificar os valores na estrutura de CFileDialog::m_ofn para inicializar valores ou estados dos controles de caixa de diálogo. A estrutura de m_ofn é do tipo OPENFILENAME. Para obter mais informações, consulte a estrutura de OPENFILENAME em Windows SDK.

Depois que você inicializa todos os controles de caixa de diálogo, chame o método de CFileDialog::DoModal para exibir a caixa de diálogo para que o usuário possa digite o caminho e o nome de arquivo. DoModal retorna se o usuário clicou em OK IDOK () ou o botão cancelar IDCANCEL (). Se DoModal retorna IDOK, você pode usar uma das funções de membro públicas de CFileDialog para recuperar informações colocada em pelo usuário.

Dica

Em Windows Vista, chamadas de vários a IFileDialog::SetFileTypes causa um erro.A segunda chamada a SetFileTypes para qualquer instância de CFileDialog retornará E_UNEXPECTED em Windows Vista.Qualquer ligação de controle SetFileTypesdo método de CFileDialog .Por exemplo, duas chamadas a CFileDialog::DoModal para a mesma instância de CFileDialog geram AFIRMAR.

CFileDialog inclui vários membros protegidos que permitem que você faça manipulação personalizada de violações de compartilhamento, de validação de nome de arquivo, e de notificação de alteração de caixa de listagem. Esses membros protegidos são funções de retorno de chamada que a maioria dos aplicativos não tem que usar como tratamento padrão é executada automaticamente. as entradas de mapa Mensagem- para essas funções não são necessárias porque eles são funções virtuais padrão.

Você pode usar a função de CommDlgExtendedError do windows para determinar se um erro ocorrer durante a inicialização da caixa de diálogo e para aprender mais sobre o erro.

A destruição de objetos de CFileDialog é processada automaticamente. Você não precisa chamar CDialog::EndDialog.

Para permitir que o usuário selecione de arquivos múltiplos, defina o parâmetro de OFN_ALLOWMULTISELECT antes de chamar DoModal. Você deve fornecer seu próprio buffer de nome de arquivo para acomodar a lista retornado de vários nomes de arquivo. Faça isso substituindo m_ofn.lpstrFile com um ponteiro para um buffer que você atribuiu, depois que você constrói CFileDialog, mas antes de chamar DoModal.

Além de isso, você deve definir m_ofn.nMaxFile usando o número de caracteres em buffer apontado por m_ofn.lpstrFile. Se você definir o número máximo de arquivos sejam selecionados a n, o tamanho do buffer é necessário n * (_MAX_PATH + 1) + 1. O primeiro item retornado em buffer é o caminho para a pasta onde os arquivos foram selecionados. Para Windows Vista- estilo caixas de diálogo, diretório e as cadeias de caracteres de nome de arquivo NULL- são finalizadas, com um caractere nulo extra após o nome do arquivo mais recente. Este formato permite que as caixas de diálogo do estilo para retornar nomes de arquivo demorada que incluem espaços. Para caixas de diálogo antiquadas, as cadeias de caracteres de diretório e nome de arquivo são separados por espaços e a função usa nomes de arquivo curtas para nomes de arquivo com espaços.

O exemplo seguinte demonstra como usar um buffer para recuperar e listar vários nomes de arquivo.

#define MAX_CFileDialog_FILE_COUNT 99
#define FILE_LIST_BUFFER_SIZE ((MAX_CFileDialog_FILE_COUNT * (MAX_PATH + 1)) + 1)

CString fileName;
wchar_t* p = fileName.GetBuffer( FILE_LIST_BUFFER_SIZE );
CFileDialog dlgFile(TRUE);
OPENFILENAME& ofn = dlgFile.GetOFN( );
ofn.Flags |= OFN_ALLOWMULTISELECT;
ofn.lpstrFile = p;
ofn.nMaxFile = FILE_LIST_BUFFER_SIZE;

dlgFile.DoModal();
fileName.ReleaseBuffer();

wchar_t* pBufEnd = p + FILE_LIST_BUFFER_SIZE - 2;
wchar_t* start = p;
while( ( p < pBufEnd ) && ( *p ) )
  p++;
if( p > start )
{
  _tprintf(_T("Path to folder where files were selected:  %s\r\n\r\n"), start );
  p++;

  int fileCount = 1;
  while( ( p < pBufEnd ) && ( *p ) )
  {
    start = p;
    while( ( p < pBufEnd ) && ( *p ) )
      p++;
    if( p > start )
      _tprintf(_T("%2d. %s\r\n"), fileCount, start );
    p++;
    fileCount++;
  }
}

Para alterar o tamanho do buffer em resposta ao usuário que selecionar vários nomes de arquivo, você deve derivar uma nova classe de CFileDialog e substituir o método de CFileDialog::OnFileNameChange .

Se você derivado uma nova classe de CFileDialog, você pode usar um mapa de mensagem para tratar todas as mensagens. Para estender tratamento de mensagem padrão, derive uma classe de CFileDialog, adicione um mapa de mensagem para a nova 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, forneça um modelo personalizado da caixa de diálogo, e adicionar um mapa de mensagens para processar as notificações dos controles estendidos. Passar todas as mensagens não processadas para a classe base. Você não precisa personalizar a função de gancho.

Quando você estiver usando o estilo de Windows Vista de CFileDialog, você não pode usar mapas de mensagem e modelos da caixa de diálogo. Em vez de isso, você deve usar interfaces COM para a funcionalidade semelhante.

Para obter mais informações sobre como usar CFileDialog, consulte Classes de caixa de diálogo comuns.

Hierarquia de herança

CObject

CCmdTarget

CWnd

CDialog

CCommonDialog

CFileDialog

Requisitos

**Cabeçalho:**afxdlgs.h

Consulte também

Referência

Classe CCommonDialog

Gráfico da hierarquia