Filtros

As informações nesta seção se aplica ao velhas estilo Abrir e Salvar como caixas de diálogo e explorador-estilo.

Você pode fornecer filtros de nome de arquivo para ajudar o usuário em limitar os nomes de arquivo que exibe a caixa de diálogo. Um filtro de nome de arquivo consiste de um par de seqüências de caracteres terminada por caractere nulo, uma descrição e um padrão, um concatenados para o outro. A caixa de diálogo exibe a descrição para permitir que o usuário escolher qual filtro usar; e ele usa o padrão para selecionar os arquivos a serem exibidos.

Para especificar os filtros, defina o lpstrFilter membro das OPENFILENAME estrutura para apontar para uma reserva que contém uma matriz de pares de Cadeia de caracteres de filtro. A última seqüência de caracteres na matriz deve ser seguida por um caractere nulo extra.

Uma seqüência de caracteres de padrão pode ser uma combinação de caracteres de nome de arquivo válido e o asterisco. O asterisco é um curinga que representa qualquer combinação de caracteres de nome de arquivo válido. A caixa de diálogo exibe somente os arquivos que correspondem ao padrão. Para especificar vários padrões para a mesma descrição, você deve usar um ponto e vírgula (;) para separar os padrões. Observe que caracteres de espaço na cadeia de caracteres de padrão podem produzir resultados inesperados.

O fragmento de código a seguir especifica dois filtros. O filtro com a descrição de "Fonte" tem dois padrões. Se o usuário selecionar este filtro, a caixa de diálogo exibe somente os arquivos que têm o.C e.Extensões CXX.

Ofn OPENFILENAME;       / / estrutura de caixa de diálogo comum

ofn.lpstrFilter = "Source\0 *.C; *.CXX\0All\0*.*\0 "
ofn.nFilterIndex = 1 

O nFilterIndex membro das OPENFILENAME estrutura especifica um índice que indica qual filtro inicialmente usa a caixa de diálogo. O primeiro filtro no buffer tem índice 1, a segunda 2 e assim por diante. Se o usuário altera o filtro usando a caixa de diálogo, o membro nFilterIndex é definido para o índice do filtro selecionado no retorno.

Você pode criar um filtro personalizado por configuração o membro lpstrCustomFilter para o endereço de um buffer que contém um único filtro e pela configuração de nMaxCustFilter membro para o tamanho do buffer, em bytes ou caracteres. A caixa de diálogo sempre coloca o filtro personalizado no início da lista de filtros e, em retorno, sempre atualiza a parte padrão do filtro com o padrão de filtro selecionado pelo usuário.

Para caixas de diálogo do estilo do Explorer, a extensão padrão pode mudar se o usuário seleciona um filtro diferente. Se o usuário seleciona um filtro cujo primeiro padrão é da forma *.xxx (isto é, a extensão não incluir um caractere curinga), a caixa de diálogo usa xxx como a extensão padrão. Isso ocorre apenas se você tiver especificado uma extensão padrão na lpstrDefExt membro das OPENFILENAME estrutura. Por exemplo, se o usuário seleciona o "Source\0 *.C; *.CXX\0 "filtro, a extensão padrão é alterado para"C". No entanto, se você tivesse definido o filtro como"Source\0.C * \0 ", a extensão padrão não mudaria porque a extensão inclui um caractere curinga.

Index