OPENFILENAME

OPENFILENAME -strukturen inneholder informasjon som GetOpenFileName og GetSaveFileName -funksjoner bruker til å initialisere en dialogboksen Åpne eller Lagresom vanlig. Når brukeren lukker dialogboksen, returnerer systemet informasjon om brukerens valg i denne strukturen .

typeDef struct tagOFN {/ / ØFN 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 Flagg; 
    WORD nFileOffset; 
    WORD nFileExtension; 
    LPCTSTR lpstrDefExt; 
    DWORD lCustData; 
    LPOFNHOOKPROC lpfnHook; 
    LPCTSTR lpTemplateName; 
} OPENFILENAME 

 

Medlemmer

lStructSize
Angir lengden, i byte, på strukturen.
hwndOwner
Identifiserer vinduet som eier dialogboksen. Dette medlemmet kan være en hvilken som helst gyldig vindus-handle, eller det kan være NULL Hvis dialogboksen har ingen eier.
hInstance
Hvis flagget OFN_ENABLETEMPLATEHANDLE er angitt i flagg -medlem, er hInstance håndtak av en minne-objekt som inneholder en mal for dialogboksen-boksen. Hvis flagget OFN_ENABLETEMPLATE er angitt, identifiserer hInstance en modul som inneholder en dialog boks mal med navnet av lpTemplateName -medlemmet. Dette medlemmet ignoreres hvis verken flagget er angitt,.

Hvis flagget OFN_EXPLORER er angitt, bruker systemet den oppgitte malen til å opprette en dialogboks som er underordnet dialogboksen standard Explorer-stil. Hvis flagget OFN_EXPLORER ikke er angitt, bruker systemet malen til å opprette en gammel stil dialogboks som erstatter dialogboksen standard.

lpstrFilter
Pekeren til en buffer som inneholder par med null-terminert filteret strenger. Den siste strengen i bufferen må avsluttes med to nulltegn.

Den første strengen i hvert par er en skjerm-streng som beskriver filteret (for eksempel "tekstfiler"), og den andre strengen angir filtermønsteret (for eksempel "*.TXT»). Hvis du vil angi flere filter-mønstre for en enkelt visningsstreng, kan du bruke et semikolon til å skille mønstre (for eksempel "*.TXT; *.DOC; *.BAK"). En Mønsterstreng kan være en kombinasjon av gyldig filnavn karakterer og jokertegnet stjerne(*). Inneholde ikke mellomrom i Mønsterstreng.

Systemet vil ikke endre rekkefølgen på filtrene. Det viser dem i filen typer kombinasjonsboksen i rekkefølgen som er angitt i lpstrFilter.

Hvis lpstrFilter er NULL, vises ikke dialogboksen filtre.

lpstrCustomFilter
Pekeren til en statisk bufferen som inneholder et par null-terminert filteret strenger for å beholde filtermønsteret valgt av brukeren. Den første strengen er din visningsstreng som beskriver egendefinerte filteret, og den andre strengen er filtermønsteret valgt av brukeren. Programmet oppretter dialogboksen første gang angir du den første strengen, som kan være et hvilket som helst tomt streng. Når brukeren velger en fil, kopierer gjeldende filtermønsteret til den andre strengen i dialogboksen. Bevarte filtermønsteret kan være ett av mønstrene som er angitt i lpstrFilter -bufferen, eller det kan være en filtermønsteret som brukeren skriver inn. Systemet bruker strengene initialisere den brukerdefinerte filfilter neste gang dialogboksen er opprettet. Hvis det nFilterIndex er null, bruker dialogboksen Egendefinert filter.

Hvis dette medlemmet er NULL, beholder ikke dialogboksen Brukerdefinert filteret mønstre.

Hvis dette medlemmet ikke er NULL, må verdien av medlemmet nMaxCustFilter angi størrelsen, i byte (ANSI-versjonen) eller 16-biters tegn (Unicode-versjon), av lpstrCustomFilter -buffer.

nMaxCustFilter
Angir størrelsen, i byte eller tegn, på bufferen som er identifisert av lpstrCustomFilter. Denne bufferen bør være minst 40 tegn. Dette medlemmet ignoreres hvis lpstrCustomFilter er NULL eller poeng til en NULL-streng.
nFilterIndex
Angir indeksen for det merkede filteret i filtyper-kontrollen. Bufferen som lpstrFilter peker til inneholder parene av strenger som definerer filtrene. De første to strenger har en indeksverdi på 1, andre sammenkoble 2, og så videre. En indeks på null angir egendefinerte filteret angitt av lpstrCustomFilter. Du kan angi en indeks på inndata for å angi innledende beskrivelse og filter filtermønsteret for dialogboksen. Når brukeren velger en fil, nFilterIndex , returnerer indeksen for filteret som vises.

Hvis nFilterIndex er null, og lpstrCustomFilter er NULL, bruker systemet det første filteret i lpstrFilter -bufferen. Hvis alle tre medlemmer er null eller NULL, systemet bruker ikke filtre og viser ikke noen filer i listekontrollen fil i dialogboksen.

lpstrFile
Pekeren til en buffer som inneholder et filnavn som brukes til å initialisere filnavnet redigeringskontroll. Det første tegnet i denne bufferen må være NULL hvis initialiseringen ikke er nødvendig. Når GetOpenFileName - eller GetSaveFileName -funksjonen returnerer vellykket, inneholder denne bufferen stasjon-betegnelse, banen, filnavnet og filtypen til den valgte filen.

Hvis flagget OFN_ALLOWMULTISELECT er angitt, og brukeren velger flere filer, inneholder gjeldende mappe etterfulgt av filnavnene til de valgte filene i bufferen. For Explorer-stil dialogbokser er katalog og filnavn strengene NULL atskilt, med en ekstra NULL-tegnet etter siste filnavnet. For gammeldagse dialogbokser, strengene er delt med mellomrom og bruker funksjonen korte filnavn for filnavn med mellomrom. Du kan bruke den FindFirstFile -funksjonen til å konvertere mellom lange og korte filnavn.

Hvis bufferen er for liten, funksjonen returnerer USANN, og returnerer funksjonen CommDlgExtendedError FNERR_BUFFERTOOSMALL. I dette tilfellet inneholder de første to bytene i bufferen lpstrFile den påkrevde størrelsen, i byte eller tegn.

nMaxFile
Angir størrelsen, i byte (ANSI-versjonen) eller 16-biters tegn (Unicode-versjon), på bufferen som lpstrFilepeker til. GetOpenFileName og GetSaveFileName -funksjonene returnerer USANN hvis bufferen er for liten til å inneholde filinformasjonen. Bufferen bør inneholde minst 256 tegn.
lpstrFileTitle
Pekeren til en buffer som mottar filnavn og filtype (uten baneinformasjon) til den valde fila. Dette medlemmet kan være NULL.
nMaxFileTitle
Angir størrelsen, i byte (ANSI-versjonen) eller 16-biters tegn (Unicode-versjon), på bufferen som lpstrFileTitlepeker til. Dette medlemmet ignoreres hvis lpstrFileTitle er NULL.
lpstrInitialDir
Pekeren til en streng som angir første fil-katalog.

Windows NT 5.0 og senere; Windows 98 og senere:

Hvis lpstrInitalDir er NULL, og gjeldende mappe inneholder alle filer av angitt filterinformasjon-typer, er første katalogen gjeldende mappe.

Hvis lpstrInitalDir er NULL, og gjeldende mappe inneholder ikke alle filer av angitt filterinformasjon-typer, er katalogen første personlige filer katalogen til gjeldende bruker. Angi den gjeldende brukerens personlige filer katalog som den opprinnelige katalogen, angir lpstrInitialDir til banen som returneres ved å kalle den SHGetSpecialFolderLocation -funksjonen med flagget CSIDL_PERSONAL.

Tidligere versjoner av Windows og Windows NT:

Hvis lpstrInitalDir er NULL, er den opprinnelige katalogen gjeldende mappe.

lpstrTitle
Pekeren til en streng som skal plasseres i tittellinjen i dialogboksen. Hvis dette medlemmet er NULL, bruker systemet standardtittelen (det vil si Lagre som eller Åpne).
Flagg
Et sett med Bitflagg som du kan bruke til å initialisere dialogboksen. Når dialogboksen returnerer, setter det disse flaggene for å angi brukerens inndata. Dette medlemmet kan være en kombinasjon av følgende flagg:
Flagg Betydning
OFN_ALLOWMULTISELECT
Angir at listeboksen filen navnet tillater flere valg. Hvis du også angir flagget OFN_EXPLORER, bruker dialogboksen brukergrensesnittet Explorer-stil; Hvis ikke, det bruker gammeldagse-brukergrensesnitt.

Hvis brukeren velger mer enn én fil, returnerer lpstrFile bufferen banen til gjeldende mappe som er etterfulgt av filnavnene til de valgte filene. Det nFileOffset er forskyvningen i byte eller tegn, til første filnavnet, og brukes ikke nFileExtension -medlem. For Explorer-stil dialogbokser er katalog og filnavn strengene NULL atskilt, med en ekstra NULL-tegnet etter siste filnavnet. Dette formatet kan Explorer-stil-dialogbokser å gå tilbake til lange filnavn som inneholder mellomrom. For gammeldagse dialogbokser, katalog og filnavn strengene er atskilt med mellomrom og bruker funksjonen korte filnavn for filnavn med mellomrom. Du kan bruke den FindFirstFile -funksjonen til å konvertere mellom lange og korte filnavn.

Hvis du angir en egendefinert mal for en gammel stil-dialogboks, må definisjonen av boksen Filnavn-listen inneholde LBS_EXTENDEDSEL-verdi.

OFN_CREATEPROMPT
Hvis brukeren angir en fil som ikke finnes, fører dette flagget til dialogboksen for å be brukeren om tillatelse til å opprette filen. Hvis brukeren velger å opprette filen, dialogboksen lukkes, og funksjonen returnerer det angitte navnet; Ellers, dialogboksen forblir åpen. Hvis du bruker dette flagget med flagget OFN_ALLOWMULTISELECT, kan dialogboksen brukeren angi bare én ikke-eksisterende fil.
OFN_ENABLEHOOK
Aktiverer bindingsfunksjon som er angitt i lpfnHook -medlem.
OFN_ENABLESIZING
Windows NT 5.0, Windows 98:Aktiverer dialogboksen Explorer-stil for å endre størrelse ved hjelp av enten musen eller tastaturet. Som standard at dialogboksene Explorer-stil Åpne og Lagre som dialogboksen for å endre størrelsen uansett om dette flagget er angitt. Dette flagget er bare nødvendig hvis du oppgir en hook-prosedyre eller en egendefinert mal. Dialogboksen gammeldagse tillater ikke endring av størrelse.
OFN_ENABLETEMPLATE
Angir at medlemmet lpTemplateName peker til navnet på en ressurs for dialogboksen mal i modulen identifisert av hInstance -medlemmet.

Hvis flagget OFN_EXPLORER er angitt, bruker systemet den oppgitte malen til å opprette en dialogboks som er underordnet dialogboksen standard Explorer-stil. Hvis flagget OFN_EXPLORER ikke er angitt, bruker systemet malen til å opprette en gammel stil dialogboks som erstatter dialogboksen standard.

OFN_ENABLETEMPLATEHANDLE
Angir at medlemmet hInstance identifiserer en datablokk som inneholder en mal for forhåndslagrede dialogboksen-boksen. Systemet ignorerer lpTemplateName Hvis dette flagget er angitt.

Hvis flagget OFN_EXPLORER er angitt, bruker systemet den oppgitte malen til å opprette en dialogboks som er underordnet dialogboksen standard Explorer-stil. Hvis flagget OFN_EXPLORER ikke er angitt, bruker systemet malen til å opprette en gammel stil dialogboks som erstatter dialogboksen standard.

OFN_EXPLORER
Indikerer at alle tilpasninger som er gjort i dialogboksen Åpne eller Lagre som bruker metodene for tilpasning av nye Explorer-stil. Hvis du vil ha mer informasjon, kan du se Explorer-stil Hook prosedyrer og Explorer-stil egendefinerte maler.

Som standard bruker dialogboksene Åpne og Lagre som Explorer-stil-brukergrensesnittet uansett om dette flagget er angitt. Dette flagget er nødvendig hvis du gir en hook-prosedyre eller en egendefinert mal, eller angi flagget OFN_ALLOWMULTISELECT.

Hvis du vil gammeldagse brukergrensesnittet, utelater flagget OFN_EXPLORER og tilbyr en erstatning gammeldagse mal eller hekte prosedyren. Hvis du vil bruke den gamle stilen, men ikke trenger en egendefinert mal eller hekte prosedyren, bare gi en Bindingsprosedyren som alltid returnerer USANN.

OFN_EXTENSIONDIFFERENT
Angir at brukeren har skrevet inn en filendelse som er forskjellig fra utvidelsen som er angitt av lpstrDefExt. Funksjonen bruker ikke dette flagget hvis lpstrDefExt er NULL.
OFN_FILEMUSTEXIST
Angir at brukeren kan skrive inn bare navnene på eksisterende filer i oppføringen i feltet navn . Hvis dette flagget er angitt, og brukeren angir et ugyldig navn, vises det en advarsel i den dialogboks boksen prosedyren i en meldingsboks. Hvis dette flagget er angitt, brukes også OFN_PATHMUSTEXIST-flagg .
OFN_HIDEREADONLY
Skjuler lese bare merket for.
OFN_LONGNAMES
For gammeldagse dialogbokser at dette flagget dialogboksen for å bruke lange filnavn. Hvis dette flagget ikke er angitt, eller hvis flagget OFN_ALLOWMULTISELECT er også angitt, bruker gammeldagse dialogbokser korte filnavn (8.3-format) for filnavn med mellomrom.

Explorer-stil-dialogbokser ignorerer dette flagget og alltid vise lange filnavn.

OFN_NOCHANGEDIR
Gjenoppretter den gjeldende katalogen til originalverdien Hvis brukeren endret katalogen mens du søker etter filer.
OFN_NODEREFERENCELINKS
Angir at dialogboksen for å gå tilbake til banen og filnavnet på den valgte snarveien (.LNK)-fil. Hvis denne verdien ikke er gitt, returnerer dialogboksen den banen og filnavnet til referert av filen snarveien
OFN_NOLONGNAMES
For gammeldagse dialogbokser at dette flagget dialogboksen for å bruke korte filnavn (8.3-format).

Explorer-stil-dialogbokser ignorerer dette flagget og alltid vise lange filnavn.

OFN_NONETWORKBUTTON
Skjuler og deaktiverer knappen nettverk.
OFN_NOREADONLYRETURN
Angir at returnerte filen har ikke lese bare merket for kontrollert og er ikke i en skrivebeskyttet mappe.
OFN_NOTESTFILECREATE
Angir at filen ikke opprettes før dialogboksen er lukket. Dette flagget bør være angitt hvis programmet lagrer filen på en delt nettverksressurs i Opprett-nonmodify. Når et program angir dette flagget, kontrollerer ikke biblioteket for skrivebeskyttelsen, en i sin helhet diskett, åpne stasjonsdøren eller nettverksbeskyttelse. Programmer som bruker dette flagget må utføre filoperasjoner nøye, fordi en fil ikke kan åpnes på nytt når den er lukket.
OFN_NOVALIDATE
Angir at de vanlige dialogboksene tillate ugyldige tegn i det returnerte filnavnet. Det oppkallende programmet bruker vanligvis en Bindingsprosedyren som kontrollerer filnavnet ved hjelp av FILEOKSTRING-meldingen. Hvis tekstboksen i redigeringskontrollen er tom eller inneholder ingenting men mellomrom, oppdateres lister over filer og mapper. Hvis tekstboksen i redigeringskontrollen inneholder noe annet, er nFileOffset og nFileExtension satt til verdiene som er generert av analyse av teksten. Ingen standard filtype legges til teksten, og heller ikke tekst som er overført til bufferen som er angitt av lpstrFileTitle.
Hvis verdien som angis av nFileOffset er mindre enn null, vil filnavnet er ugyldig. Ellers filnavnet er gyldig, og nFileExtension og nFileOffset kan brukes som om de flagget OFN_NOVALIDATE ikke hadde angitt.
OFN_OVERWRITEPROMPT
Fører til dialogboksen Lagre som for å generere en meldingsboks, hvis den valgte filen finnes allerede. Brukeren må bekrefte om du vil overskrive filen.
OFN_PATHMUSTEXIST
Angir at brukeren kan skrive inn bare gyldig baner og filnavn. Hvis dette flagget brukes og brukeren skriver inn en ugyldig bane og filnavn i feltet oppføringennavn , viser funksjonen dialogboksen-boksen en advarsel i en meldingsboks .
OFN_READONLY
Fører til lese bare merket for som skal kontrolleres først når dialogboksen er opprettet. Dette flagget angir tilstanden til lese bare merket for når dialogboksen er lukket.
OFN_SHAREAWARE
Angir at hvis et kall til den OpenFile , funksjon mislykkes på grunn av et nettverk som deler overtredelse, feilen ignoreres og dialogboksen returnerer den valgte filnavnet.

Hvis dette flagget ikke er angitt, vil dialogboksen varsler hook-prosedyre når et nettverk delingstillatelse oppstår for filnavnet som er angitt av brukeren. Hvis du angir OFN_EXPLORER-flagg, sender dialogboksen CDN_SHAREVIOLATION meldingen til hook-prosedyre. Hvis du ikke angir OFN_EXPLORER, sender dialogboksen SHAREVISTRING registrerte meldingen til Bindingsprosedyren.

OFN_SHOWHELP
Fører til dialogboksen for å vise Hjelp -knappen. HwndOwner -medlem må angi i vinduet for å motta HELPMSGSTRING registrert meldinger som dialogboksen sender når brukeren klikker Hjelp -knappen.

Dialogboksen en Explorer-stil sender en varslingsmelding CDN_HELP til hook-prosedyre når brukeren klikker Hjelp -knappen.


nFileOffset
Angir nullbasert forskyvningen i byte (ANSI-versjonen) eller 16-biters tegn (Unicode-versjon), fra begynnelsen av banen til filnavnet i strengen vises til i lpstrFile. For eksempel, hvis lpstrFile peker til følgende streng, inneholder "c:\dir1\dir2\file.ext", dette medlemmet verdien 13 for å angi forskyvningen av strengen "file.ext".

Hvis brukeren velger flere filer, er nFileOffset forskyvningen til første filnavnet.

nFileExtension
Angir nullbasert forskyvningen i byte (ANSI-versjonen) eller 16-biters tegn (Unicode-versjon), fra begynnelsen av banen til filendelsen i strengen vises til i lpstrFile. Hvis lpstrFile peker til følgende streng, inneholder for eksempel verdien 18 i "c:\dir1\dir2\file.ext", dette medlemmet. Hvis brukeren ikke skriver inn filtypen og lpstrDefExt er NULL, angir dette medlemmet en utlignet til nulltegnet. Hvis brukeren skrev inn "." som siste tegn i filnavnet, angir dette medlemmet null.
lpstrDefExt
Peker til en buffer som inneholder standard filtype. GetOpenFileName og GetSaveFileName må du føye denne filtypen i filnavnet hvis brukeren ikke klarer å skrive inn filtypen. Denne strengen kan være en hvilken som helst lengde, men bare de første tre bokstavene er tilføyd. Strengen bør ikke inneholder et punktum (.). Hvis dette medlemmet er NULL, og brukeren ikke skriver du inn filtypen, legges ikke filtypen.
lCustData
Angir en programdefinert data som systemet sender til Bindingsprosedyren identifisert av lpfnHook -medlemmet. Når systemet sender meldingen WM_INITDIALOG til Bindingsprosedyren, er meldingens lParam -parameteren en peker til OPENFILENAME strukturen angitt da dialogboksen ble opprettet. Bindingsprosedyren kan bruke denne pekeren til å hente verdien lCustData.
lpfnHook
Pekeren til en hook-prosedyre. Dette medlemmet ignoreres hvis ikke flagg -medlem inkluderer OFN_ENABLEHOOK-flagg.

Hvis flagget OFN_EXPLORER ikke er angitt i flagg -medlem, er lpfnHook en peker til en OFNHookProcOldStyle hook-prosedyre som mottar meldinger som er ment for dialogboksen. Bindingsprosedyren returnerer USANN for å sende en melding til standard dialogboksen boksen prosedyre eller sann til forkaste meldingen.

Hvis OFN_EXPLORER er angitt, er lpfnHook en peker til en OFNHookProc hook-prosedyre. Bindingsprosedyren mottar varselmeldinger som er sendt fra dialogboksen. Bindingsprosedyren også mottar meldinger for eventuelle ekstra kontroller som du har definert ved å angi en mal for barn-dialogboksen. Bindingsprosedyren mottar ikke meldinger som er ment for standardkontroller i dialogboksen standard.

lpTemplateName
Pekeren til en null-terminert streng som navngir en dialogboksen mal ressurs i modulen identifisert av hInstance -medlemmet. For nummererte dialogboksen boksen ressurser, kan dette være en verdien som returneres av MAKEINTRESOURCE -makroen. Dette medlemmet ignoreres hvis ikke flagget OFN_ENABLETEMPLATE er angitt i flagg -medlem.

Hvis flagget OFN_EXPLORER er angitt, bruker systemet den oppgitte malen til å opprette en dialogboks som er underordnet dialogboksen standard Explorer-stil. Hvis flagget OFN_EXPLORER ikke er angitt, bruker systemet malen til å opprette en gammel stil dialogboks som erstatter dialogboksen standard.

Hurtiginformasjon

nbsp; Windows &NT: krever versjon 3.1 eller senere.
Windows:Krever Windows 95 eller senere.
Windows CE:Krever versjon 1.0 eller senere.
Topptekst:Deklarert i commdlg.h.
Unicode:Definert som Unicode- og ANSI-strukturer.

Se også

Felles biblioteket dialogboksoversikt, felles dialogboksen boksen strukturer, GetOpenFileName, GetSaveFileName, SHGetSpecialFolderLocation

Index