Filtri

Le informazioni contenute in questa sezione si applicano a vecchi stile aperto e Salva come finestre di dialogo e di tipo Esplora risorse.

È possibile fornire filename filtri per assistere l'utente nel limitare i nomi dei file che consente di visualizzare la finestra di dialogo. Un filtro filename è costituito da una coppia di stringhe con terminazione null, una descrizione e un pattern, uno concatenato a altro. Nella finestra di dialogo Visualizza la descrizione per consentire all'utente di scegliere quale filtro da utilizzare; Esso utilizza il modello per selezionare i file da visualizzare.

Per specificare i filtri, impostare il membro lpstrFilter della struttura OPENFILENAME per puntare a un buffer che contiene una matrice di coppie di stringa di filtro. L'ultima stringa nella matrice deve essere seguito da un carattere null supplementare.

Una stringa modello può essere una combinazione di caratteri del nome di file valido e l'asterisco. L'asterisco è un carattere jolly che rappresenta qualsiasi combinazione di caratteri del nome di file valido. Nella finestra di dialogo consente di visualizzare solo i file che corrisponde al pattern. Per specificare più modelli per la stessa descrizione, è necessario utilizzare un punto e virgola (;) per separare gli schemi. Si noti che i caratteri di spazio nella stringa modello possono produrre risultati imprevisti.

Frammento di codice seguente specifica due filtri. Il filtro con la descrizione di "Fonte" ha due modelli. Se l'utente seleziona questo filtro, finestra di dialogo Visualizza solo i file che hanno la.C e.Estensioni CXX.

OPENFILENAME ofn;       / / finestra di dialogo comune box struttura

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

Il membro nFilterIndex della struttura OPENFILENAME specifica un indice che indica quale filtro inizialmente utilizza la finestra di dialogo. Il primo filtro nel buffer ha indice 1, la seconda 2 e così via. Se l'utente passa il filtro mentre usando la finestra di dialogo, il membro nFilterIndex è impostato sull'indice del filtro selezionato sul ritorno.

È possibile creare un filtro personalizzato impostando il membro lpstrCustomFilter all'indirizzo di un buffer contenente un singolo filtro e impostando il membro nMaxCustFilter alla dimensione del buffer, in caratteri o byte. Nella finestra di dialogo sempre pone il filtro personalizzato all'inizio dell'elenco dei filtri e, al ritorno, sempre aggiorna la parte modello del filtro con il modello dal filtro selezionato dall'utente.

Per le finestre di dialogo di tipo Esplora risorse, l'estensione predefinita può cambiare se l'utente seleziona un filtro diverso. Se l'utente seleziona un filtro in cui primo modello è nella forma *.xxx (cioè, l'estensione non include un carattere jolly), nella finestra di dialogo utilizza xxx come l'estensione predefinita. Ciò si verifica solo se è stato specificato un estensione predefinita nel membro lpstrDefExt della struttura OPENFILENAME . Ad esempio, se l'utente seleziona "Source\0 *.C; *.CXX\0 "filtro, l'estensione predefinita cambia a"C". Tuttavia, se si aveva definito il filtro come "Source\0 *.C * \0 ", l'estensione predefinita non cambierebbe perché l'estensione include un carattere jolly.