A OPENFILENAME estrutura contém informações que o GetOpenFileName e GetSaveFileName funções usam para inicializar um Abrir ou Salvar como caixa de diálogo comum. Depois que o usuário fecha a caixa de diálogo, o sistema retorna informações sobre a seleção do usuário nessa estrutura.
typedef struct tagOFN {/ / ofn DWORD lStructSize;
HWND hwndOwner;
HINSTANCE hInstance;
LPCTSTR lpstrFilter;
LPTSTR lpstrCustomFilter;
DWORD nMaxCustFilter;
DWORD nFilterIndex;
LPTSTR lpstrFile;
DWORD nMaxFile;
LPTSTR lpstrFileTitle;
DWORD nMaxFileTitle;
LPCTSTR lpstrInitialDir;
LPCTSTR lpstrTitle;
DWORD Sinalizadores;
PALAVRA nFileOffset;
PALAVRA nFileExtension;
LPCTSTR lpstrDefExt;
DWORD lCustData;
LPOFNHOOKPROC lpfnHook;
LPCTSTR lpTemplateName;
} OPENFILENAME
Se o Sinalizar OFN_EXPLORER estiver definido, o sistema usa o modelo especificado para criar uma caixa de diálogo que é um filho da caixa de diálogo estilo do Explorer padrão. Se o Sinalizar OFN_EXPLORER não estiver definido, o sistema usa o modelo para criar uma caixa de diálogo estilo antigo que substitui a caixa de diálogo padrão.
A primeira seqüência de caracteres em cada par é uma Cadeia de caracteres de Exibir que descreve o filtro (por exemplo, "arquivos de texto"), e a segunda seqüência de caracteres Especifica o filtro padrão (por exemplo, "*.TXT"). Para especificar múltiplo filtro padrões para uma Cadeia de caracteres exibir único, use um ponto e vírgula para separar os padrões (por exemplo, "*.TXT; *.DOC; *.BAK"). Uma seqüência de caracteres de padrão pode ser uma combinação de caracteres de nome de arquivo válido e o caractere de curinga asterisco. Não inclua espaços na cadeia de caracteres padrão.
O sistema não altera a ordem dos filtros. Ele exibe-os na caixa de combinaçãotipos de arquivo, na ordem especificada na lpstrFilter .
Se lpstrFilter é NULL, a caixa de diálogo não exibir todos os filtros.
Se esse membro é NULL, a caixa de diálogo não preserva padrões de filtro definido pelo usuário.
Se esse membro não é NULL, o valor da nMaxCustFilter membro deve especificar o tamanho, em bytes (versão ANSI) ou 16-bit caracteres (versão Unicode), do buffer lpstrCustomFilter.
Se nFilterIndex for zero e lpstrCustomFilter for NULL, o sistema usa o primeiro filtro na lpstrFilter reserva. Se todos os três membros são zero ou nulo, o sistema não usa os filtros e não mostra todos os arquivos no Controlarar de lista de arquivo da caixa de diálogo.
Se o Sinalizar de OFN_ALLOWMULTISELECT definido, e o usuário selecionar Múltiplo arquivos, o buffer contém o diretório atual seguido por nomes de arquivo dos arquivos selecionados. Para caixas de diálogo do explorador-estilo, as seqüências de caracteres de diretório e nome de arquivo são NULL separado, com um caractere nulo extra após o último nome do arquivo. Para caixas de diálogo do estilo antigo, as seqüências de caracteres são separada por espaço e a função usa nomes de arquivo curtos para nomes de arquivos com espaços. Você pode usar o FindFirstFile função para converter entre nomes de arquivo longos e curtos.
Se o buffer é muito pequeno, a função retorna FALSE e o CommDlgExtendedError função retorna FNERR_BUFFERTOOSMALL. Neste caso, os dois primeiros bytes das lpstrFile reserva contêm o exigido tamanho, em bytes ou caracteres.
Windows NT 5.0 e posterior; Windows 98 e posterior:
Se lpstrInitalDir é NULL e o diretório atual contém todos os arquivos dos tipos de filtro especificado, o diretório inicial é o diretório atual.
Se lpstrInitalDir é NULL e o diretório atual não conter todos os arquivos dos tipos de filtro especificado, o diretório inicial é o diretório de arquivos pessoais do usuário atual. Para especificar o diretório de arquivos pessoais do usuário atual como o diretório inicial, defina lpstrInitialDir como o caminho retornado chamando o SHGetSpecialFolderLocation função com o sinalizador CSIDL_PERSONAL.
Versões anteriores do Windows e Windows NT:
Se lpstrInitalDir for NULL, o diretório inicial é o diretório atual.
| Bandeira | Significado |
|---|---|
| OFN_ALLOWMULTISELECT | |
| Especifica que a caixa de listanome do arquivopermite várias seleções. Se você também definir o Sinalizar OFN_EXPLORER, a caixa de diálogo usa a interface de usuário do estilo do Explorer; caso contrário, ele usa a interface do usuário de estilo antigo . Se o usuário selecionar mais de um arquivo, o buffer lpstrFile retorna o caminho para o diretório atual seguido por nomes de arquivo dos arquivos selecionados. O membro nFileOffset é o deslocamento, em bytes ou caracteres, para o primeiro nome de arquivo, e o membro de nFileExtension não é usado. Para caixas de diálogo do explorador-estilo, as seqüências de caracteres de diretório e nome de arquivo são NULL separado, com um caractere nulo extra após o último nome do arquivo. Este formato permite que as caixas de diálogo do estilo do Explorer retornar nomes de arquivo longos que contêm espaços. Para caixas de diálogo do estilo antigo, as seqüências de caracteres de diretório e nome de arquivo são separadas por espaços e a função usa nomes de arquivo curtos para nomes de arquivos com espaços. Você pode usar o FindFirstFile função para converter entre nomes de arquivo longos e curtos. Se você especificar um modelo Personalizar para uma caixa de diálogo estilo antigo, a definição da caixa de lista Nome do arquivo deve conter o valor LBS_EXTENDEDSEL. |
|
| OFN_CREATEPROMPT | |
| Se o usuário especifica um arquivo que não existe, este sinalizador fará com que a caixa de diálogo para prompt o usuário de permissão criar o arquivo. Se o usuário optar por criar o arquivo, a caixa de diálogo é fechada e a função retorna o nome especificado; caso contrário, a caixa de diálogo permanece aberta. Se você usar esse sinalizador com o Sinalizar de OFN_ALLOWMULTISELECT, a caixa de diálogo permite ao usuário especificar somente um arquivo inexistente. | |
| OFN_ENABLEHOOK | |
| Permite que a função de gancho especificada na lpfnHook membro. | |
| OFN_ENABLESIZING | |
| Windows NT 5.0, Windows 98:Permite que a caixa de diálogo do estilo do Explorer ser redimensionada usando o mouse ou o teclado. Por padrão, as caixas de diálogo do estilo do Explorer Abrir e Salvar como permite que a caixa de diálogo ser redimensionada independentemente de saber se este sinalizador estiver definido. Este sinalizador é necessário somente se você fornecer um procedimento de gancho ou modelo personalizado. A caixa de diálogo estilo antigo não permite redimensionamento. | |
| OFN_ENABLETEMPLATE | |
| Indica que a lpTemplateName membro aponta para o nome de um recurso de modelo de diálogo no módulo identificado pelo hInstance membro. Se o Sinalizar OFN_EXPLORER estiver definido, o sistema usa o modelo especificado para criar uma caixa de diálogo que é um filho da caixa de diálogo estilo do Explorer padrão. Se o Sinalizar OFN_EXPLORER não estiver definido, o sistema usa o modelo para criar uma caixa de diálogo estilo antigo que substitui a caixa de diálogo padrão. |
|
| OFN_ENABLETEMPLATEHANDLE | |
| Indica que o hInstance membro identifica um bloco dados que contém um modelo caixa diálogo pré-carregadas. O sistema ignora a lpTemplateName se este sinalizador for especificado. Se o Sinalizar OFN_EXPLORER estiver definido, o sistema usa o modelo especificado para criar uma caixa de diálogo que é um filho da caixa de diálogo estilo do Explorer padrão. Se o Sinalizar OFN_EXPLORER não estiver definido, o sistema usa o modelo para criar uma caixa de diálogo estilo antigo que substitui a caixa de diálogo padrão. |
|
| OFN_EXPLORER | |
| Indica que quaisquer personalizações feitas à caixa de diálogo Abrir ou Salvar como usam os novos métodos de personalização do explorador-estilo. Para obter mais informações, consulte Procedimentos de gancho de estilo do Explorer e Explorer-estilo Personalizar modelos. Por padrão, as caixas de diálogo Abrir e Salvar como usam a interface de usuário do estilo do Explorer independentemente de saber se este sinalizador é definido. Este sinalizador é necessário somente se você fornece um procedimento de gancho ou um modelo Personalizar, defina o Sinalizar de OFN_ALLOWMULTISELECT. Se desejar que a interface do usuário de estilo antigo, omita o sinalizador OFN_EXPLORER e fornecer um modelo de estilo antigo de substituição ou procedimento gancho. Se você deseja que o estilo antigo mas não precisa de um modelo personalizado ou procedimento gancho, simplesmente fornecer um procedimento de gancho que sempre retorna FALSE. |
|
| OFN_EXTENSIONDIFFERENT | |
| Especifica que o usuário digitado um extensão de nome de arquivo que difere a extensão especificada por lpstrDefExt. A função não usa esse sinalizador se lpstrDefExt é NULL. | |
| OFN_FILEMUSTEXIST | |
| Especifica que o usuário pode digitar apenas nomes de ficheiros existentes no camponome do arquivode entrada. Se este sinalizador for especificado e o usuário insere um nome inválido, o procedimento caixa diálogo exibe um aviso em uma caixa de mensagem. Se este sinalizador for especificado, o sinalizador OFN_PATHMUSTEXIST também é usado . | |
| OFN_HIDEREADONLY | |
| Oculta a caixa de seleçãosomente leitura . | |
| OFN_LONGNAMES | |
| Para caixas de diálogo do estilo antigo, este sinalizador faz com que a caixa de diálogo usar nomes de arquivo longos. Se este sinalizador não for especificado, ou se também for definido o Sinalizar OFN_ALLOWMULTISELECT, caixas de diálogo do estilo antigo usam nomes de arquivo curtos (formato 8.3) para nomes de arquivos com espaços. Caixas de diálogo do estilo do Explorer ignoram este sinalizador e sempre exibem nomes de arquivos longos. |
|
| OFN_NOCHANGEDIR | |
| Restaura o diretório atual para seu valor original, se o usuário alterou o diretório ao procurarar por limas. | |
| OFN_NODEREFERENCELINKS | |
| Direciona a caixa de diálogo para retornar o caminho e o nome do arquivo de atalho selecionado (.Arquivo LNK). Se esse valor não for especificado, a caixa de diálogo retorna o caminho e o nome do arquivo do arquivo referenciado pelo atalho | |
| OFN_NOLONGNAMES | |
| Para caixas de diálogo do estilo antigo, este sinalizador fará com que a caixa de diálogo usar nomes de arquivo curtos (formato 8.3). Caixas de diálogo do estilo do Explorer ignoram este sinalizador e sempre exibem nomes de arquivos longos. |
|
| OFN_NONETWORKBUTTON | |
| Oculta e desativa o botão ' rede '. | |
| OFN_NOREADONLYRETURN | |
| Especifica que o arquivo retornado não tem leitura somente caixa de seleção marcada e não está em um diretório protegido contra gravação. | |
| OFN_NOTESTFILECREATE | |
| Especifica que o arquivo não é criado antes que a caixa de diálogo é fechada. Esse sinalizador deve ser especificado se o aplicativo salva o arquivo em um compartilhamento de rede criar-nonmodify. Quando um aplicativo especifica esse sinalizador, a biblioteca não Marcar para proteção contra gravação, um disco cheio, uma porta da unidade aberta ou proteção de rede. Aplicativos usando esse sinalizador devem executar arquivo operações com cuidado, porque um arquivo não pode ser reaberto depois que ele é fechado. | |
| OFN_NOVALIDATE | |
| Especifica que o comum caixas de diálogo permitam caracteres inválidos no nome de arquivo retornado. Normalmente, o aplicativo de chamada usa um procedimento de gancho que verifica o nome do arquivo, usando a mensagem FILEOKSTRING. Se a caixa de texto no Controlarar de editar está vazia ou contém apenas espaços, as listas de arquivos e diretórios são atualizadas. Se a caixa de texto no Controlarar de Editar contém qualquer outra coisa, nFileOffset e nFileExtension são definidas como valores gerados por analisar o texto. Nenhuma extensão padrão é adicionado ao texto, nem é o texto copiado para o buffer especificado pelo lpstrFileTitle. | |
| Se o valor especificado por nFileOffset é menor que zero, o nome do arquivo é inválido. Caso contrário, o nome do arquivo é válido, e nFileExtension e nFileOffset podem ser usados como se não tivesse sido especificado o sinalizador OFN_NOVALIDATE. | |
| OFN_OVERWRITEPROMPT | |
| Faz com que o Salvar como caixa de diálogo gerar uma caixa de mensagem se o arquivo selecionado já existe. O usuário deverá confirmar se deseja substituir o arquivo. | |
| OFN_PATHMUSTEXIST | |
| Especifica que o usuário pode digitar apenas nomes de arquivos e caminhos válidos. Se este sinalizador é usado e o usuário digita um inválido caminho e nome do arquivo no campo de entrada denome do arquivo, a função de caixa de diálogo exibe um aviso em uma caixa de mensagem . | |
| OFN_READONLY | |
| Faz com que a leiturasomente caixa de seleção ser marcada inicialmente quando a caixa diálogo é criada. Este sinalizador indica o estado da caixa de seleçãosomente leituraquando a caixa de diálogo é fechada . | |
| OFN_SHAREAWARE | |
| Especifica que, se um chamar para o função OpenFile falha devido a uma violação de compartilhamento de rede, o erro será ignorado e a caixa de diálogo retorna o nome do arquivo selecionado. Se este sinalizador não estiver definido, a caixa de diálogo notifica seu procedimento gancho quando ocorre uma violação de compartilhamento de rede para o nome do arquivo especificado pelo usuário. Se você definir o Sinalizar OFN_EXPLORER, a caixa de diálogo envia a mensagem CDN_SHAREVIOLATION para o procedimento de gancho. Se você não definir OFN_EXPLORER, a caixa de diálogo envia a mensagem registrada de SHAREVISTRING para o procedimento gancho. |
|
| OFN_SHOWHELP | |
| Faz com que a caixa de diálogo Exibir no botão Ajuda . O hwndOwner membro deve especificar a janela para receber a HELPMSGSTRING registadas mensagens de caixa de diálogo envia quando o usuário clica no botão Ajuda. Uma caixa de diálogo do estilo do Explorer envia uma mensagem de notificação CDN_HELP para o procedimento gancho quando o usuário clica no botão Ajuda. |
|
Se o usuário selecionar mais de um arquivo, nFileOffset é o deslocamento para o primeiro nome de arquivo.
Se o Sinalizar OFN_EXPLORER não é definido na sinalizadores membro, lpfnHook é um ponteiro para um procedimento de gancho de OFNHookProcOldStyle que recebe mensagens destinadas a caixa de diálogo. O procedimento gancho retorna FALSE para transmitir uma mensagem para o procedimento de caixa de diálogo padrão ou TRUE para descartar a mensagem.
Se OFN_EXPLORER estiver definido, lpfnHook é um ponteiro para um procedimento de gancho de OFNHookProc . O procedimento gancho recebe mensagens de notificação enviadas na caixa de diálogo. O procedimento gancho recebe também mensagens para quaisquer controles adicionais que você definiu, especificando um modelo de diálogo filho. O procedimento de gancho não recebe mensagens destinadas os controles padrão da caixa de diálogo padrão.
Se o Sinalizar OFN_EXPLORER estiver definido, o sistema usa o modelo especificado para criar uma caixa de diálogo que é um filho da caixa de diálogo estilo do Explorer padrão. Se o Sinalizar OFN_EXPLORER não estiver definido, o sistema usa o modelo para criar uma caixa de diálogo estilo antigo que substitui a caixa de diálogo padrão.
nbsp; Windows &NT: requer a versão 3.1 ou posterior.
Windows:Requer o Windows 95 ou posterior.
Windows CE:Requer versão 1.0 ou posterior.
Cabeçalho:Declaradas no commdlg.h.
Unicode:Definidos como estruturas ANSI e Unicode.
Visão geral de biblioteca de caixa de diálogo comum, estruturas de caixa de diálogo comuns, GetOpenFileName, GetSaveFileName, SHGetSpecialFolderLocation