Informasjonen i dette avsnittet gjelder både Explorer-stil og gamle stil dialogboksene Åpne og Lagre som.
Du kan gi filnavn filter for å hjelpe brukeren med å begrense filnavnene som vises i dialogboksen. Et filnavn filter består av et par null-terminert strenger, en beskrivelse og et mønster, en slås sammen til en annen. Dialogboksen viser beskrivelsen å la brukeren velge hvilken filteret skal bruke; og den bruker mønsteret for å velge filer for å vise.
Hvis du vil angi filtrene, setter du lpstrFilter -medlem av OPENFILENAME -strukturen til å peke til en buffer som inneholder tabelldata med filteret streng parene. Den siste strengen i matrisen må etterfølges av en ekstra null-tegn.
En Mønsterstreng kan være en kombinasjon av gyldig filnavn karakterer og stjerne(*). Stjernen er et jokertegn som representerer en kombinasjon av tegn i gyldig filnavn. Dialogboksen viser bare de filene som passer til mønsteret. Hvis du vil angi flere mønstre for samme beskrivelsen, må du bruke et semikolon (;) til å skille mønstrene. Legg merke til at mellomromstegn i Mønsterstreng kan gi uventede resultater.
Følgende kodefragment angir to filtre. Filteret med "Kilde"-Beskrivelse har to mønstre. Hvis brukeren velger dette filteret, dialogboksen viser bare filer som har den.C og.XX-utvidelser.
OPENFILENAME ØFN; / / felles struktur, dialogboks
ofn.lpstrFilter = "kilden\0 *.C; *.CXX\0All\0*.*\0 "
ofn.nFilterIndex = 1
NFilterIndex -medlem av OPENFILENAME -strukturen angir en indeks som angir hvilke filteret i dialogboksen bruker først. Det første filteret i bufferen har indeksen 1, den andre 2, og så videre. Hvis brukerendringer filteret mens du bruker dialogboksen, nFilterIndex -medlem er satt til indeksen for det merkede filteret på gå tilbake.
Du kan opprette et egendefinert filter ved å sette lpstrCustomFilter -medlem til adressen til en buffer som inneholder ett enkelt filter, og ved å sette nMaxCustFilter -medlem til størrelsen på bufferen, i tegn eller byte. Dialogboksen alltid plasserer egendefinert filter i begynnelsen av listen over filtre og, kom tilbake, oppdaterer alltid mønster-del av filteret med mønster fra filteret valgt av brukeren.
Standardfiltypen kan endres hvis brukeren velger et annet filter for Explorer-stil-dialogbokser. Hvis brukeren velger et filter der første mønsteret er for skjemaet *.xxx (det vil si at filtypen inkluderer ikke et jokertegn), dialogboksen bruker xxx som standard filtype. Dette skjer bare hvis du har angitt en standard filtype i lpstrDefExt -medlem av OPENFILENAME -strukturen. For eksempel, hvis brukeren velger den "kilden\0 *.C; *.CXX\0 "filter, standardfiltypen endres til"C". Men hvis du hadde definert filter som "kilden\0 *.C * \0 ", standardfiltypen ville ikke endre fordi filtypen inkluderer et jokertegn.