OPENFILENAME

Structura OPENFILENAME conține informații pe care GetOpenFileName și GetSaveFileName funcții utilizează pentru a inițializa o Deschidere sau Salvare ca comune casetă de dialog. După ce utilizatorul se închide caseta de dialog, sistemul întoarce informații despre selecția utilizatorului în această structură.

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 Steaguri; 
    WORD nFileOffset; 
    WORD nFileExtension; 
    LPCTSTR lpstrDefExt; 
    DWORD lCustData; 
    LPOFNHOOKPROC lpfnHook; 
    LPCTSTR lpTemplateName; 
} OPENFILENAME 

 

Membrii

lStructSize
Specifică lungimea, în octeți, structurii.
hwndOwner
Identifică fereastra care deține caseta de dialog. Acest membru poate fi orice fereastră valabil mâner, sau poate fi nul în cazul în care caseta de dialog a nu proprietar.
hInstance
Dacă pavilion OFN_ENABLETEMPLATEHANDLE este stabilit în membre steaguri , hInstance este ghidajul de un obiect de memorie care con?in un șablon de caseta de dialog. Dacă pavilion OFN_ENABLETEMPLATE este setat, hInstance identifică un modul care conține un șablon de caseta de dialog numit de statul membru de lpTemplateName . Dacă este setat nici pavilion, acest membru este ignorat.

Dacă pavilion OFN_EXPLORER este stabilit, sistemul utilizează șablonul specificat pentru a crea o casetă de dialog care este un copil din caseta de dialog Explorer-stil implicit. Dacă pavilion OFN_EXPLORER nu este setată, sistemul utilizează șablonul pentru a crea o casetă de dialog stil vechi, care înlocuiește caseta de dialog implicită.

lpstrFilter
Indicatorul pentru a o tampon care conțin perechi de filtru null-terminated siruri de caractere. Șirul ultima în zona-tampon trebuie să se încheie de două caractere NULL.

Primul șir în fiecare pereche este un șir de afișare care descrie filtru (de exemplu, "fișiere Text"), ?i al doilea în șirul specifică modelul filtru (de exemplu, "*.TXT"). Pentru a specifica mai multe modele de filtru pentru un șir unic display, utilizați punct și virgulă pentru a separa modele (de exemplu, "*.TXT; *.DOC; *.BAK"). Un șir de model poate fi o combinație de caractere filename valabil și metacaracterul asterisc luni(**). Nu include spații în șirul de model.

Sistemul nu modifică ordinea de filtre. Le afișează în caseta combotipuri de Fișierîn ordinea specificată în lpstrFilter .

În cazul în care lpstrFilter este NULL, caseta de dialog nu se afișează nici un filtru.

lpstrCustomFilter
Indicatorul pentru a o tampon statice care conține o pereche de siruri de caractere null-terminated filtru pentru păstrarea modelului filtru ales de utilizator. Primul șir este șirul de afișare care descrie filtru personalizat, și al doilea șir este modelul de filtru selectat de utilizator. Prima dată cererea dumneavoastră creează caseta de dialog, specificați primul șir, care poate fi orice șir nevid. Când utilizatorul selectează un fișier, caseta de dialog copiază modelul filtru curent al doilea șir. Modelul conservate filtru poate fi unul dintre modelele men?ionate în zona-tampon lpstrFilter , sau poate fi un model de filtru introdus de utilizator. Sistemul utilizează siruri de caractere pentru a inițializa filtrul definite de utilizator fișier la următoarea casetă de dialog este creat. În cazul în care nFilterIndex este zero, caseta de dialog utilizează filtru personalizat.

Dacă acest membru este NULL, caseta de dialog nu păstrează modele filtru definite de utilizator.

Dacă acest membru nu este NULĂ, valoarea nMaxCustFilter membru trebuie să specificați dimensiunea, în octeți (ANSI versiunea) sau 16-bit caractere (versiunea Unicode), de tampon lpstrCustomFilter.

nMaxCustFilter
Specifică dimensiunea, în octeți sau caractere, de tampon identificate de lpstrCustomFilter. Această solu?ie tampon trebuie să fie cel pu?in 40 de caractere. Acest membru este ignorată dacă lpstrCustomFilter este NULL sau puncte la un șir NULL.
nFilterIndex
Specifică indicele de filtru selectat în mod curent în controlul tipuri de fișiere. Tampon a subliniat de lpstrFilter conține perechi de siruri de caractere care definesc filtre. Prima pereche de siruri de caractere are o valoare de index de 1, a doua pereche de 2, și așa mai departe. Un index al zero indică filtru particularizat specificat de lpstrCustomFilter. Aveți posibilitatea să specificați un index pe intrare pentru a indica filtru ini?ială descriere și filtru de model pentru caseta de dialog. Când utilizatorul selectează un fișier, nFilterIndex întoarce indicele de filtrul afișat curent.

În cazul în care nFilterIndex este zero și lpstrCustomFilter este NULL, sistemul utilizează primul filtru în zona-tampon lpstrFilter . Dacă toate trei membri sunt zero sau NULL, sistemul nu utilizați filtre și nu afișează fișierele din controlul listă fișier din caseta de dialog.

lpstrFile
Indicatorul pentru a o tampon care conține un nume de fișier folosite pentru a initializa numele de fișier control de editare. Primul caracter din această solu?ie-tampon trebuie să fie nul dacă inițializarea nu este necesar. Atunci când funcția GetOpenFileName sau GetSaveFileName returnează succes, această solu?ie tampon conține identificare unitate, calea, nume de fișier și extensia de fișier selectat.

Dacă pavilion OFN_ALLOWMULTISELECT este stabilit și utilizatorul selectează mai multe fișiere, tamponul conține directorul curent, urmat de numele fișierelor fi?iere selectate. Pentru casete de dialog Explorer-stil, director și numele de fișier siruri de caractere sunt NULL separate, cu un caracter nul suplimentare după ultima numele fișierului. Pentru casete de dialog stil vechi, siruri de caractere sunt spa?iului separat și funcția utilizează fișiere scurt pentru numele fișierelor cu spații. Aveți posibilitatea să utilizați FindFirstFile funcție pentru a face conversia între numele de fișiere lungi și scurte.

Dacă zona-tampon este prea mică, funcția întoarce FALSE și funcția CommDlgExtendedError returnează FNERR_BUFFERTOOSMALL. În acest caz, prima doi octeți din tampon lpstrFile conține dimensiunea cerută, caractere sau octeți.

nMaxFile
Specifică dimensiunea, în octeți (ANSI versiunea) sau 16-bit caractere (versiunea Unicode), de tampon a subliniat de lpstrFile. Funcții GetOpenFileName și GetSaveFileName întoarce FALSE dacă tamponul este prea mic pentru a conține informațiile de fișier. Zona tampon trebuie să fie cel pu?in 256 de caractere.
lpstrFileTitle
Indicatorul pentru a o tampon care primește nume de fișier și extensia (fără informațiile de cale) din fișierul selectat. Acest membru poate fi NULL.
nMaxFileTitle
Specifică dimensiunea, în octeți (ANSI versiunea) sau 16-bit caractere (versiunea Unicode), de tampon a subliniat de lpstrFileTitle. Acest membru este ignorată dacă lpstrFileTitle este NULL.
lpstrInitialDir
Indicatorul un șir care specifică directorul Fișier inițial.

Windows NT 5.0 și mai târziu; Windows 98 sau o versiune ulterioară:

În cazul în care lpstrInitalDir este NULL și directorul curent conține toate fi?ierele din tipurile specificate de filtru, directorul inițială este directorul curent.

Dacă lpstrInitalDir este NULL și directorul curent nu conține toate fi?ierele din tipurile specificate de filtru, directorul inițială este directorul de fișiere personale utilizatorului curent. Pentru a specifica directorul de fișiere personale utilizatorului curent ca directorul ini?ială, setați lpstrInitialDir la calea de returnat de asteptare SHGetSpecialFolderLocation funcție cu pavilion CSIDL_PERSONAL.

Versiunile anterioare de Windows și Windows NT:

În cazul în care lpstrInitalDir este NULL, directorul inițială este directorul curent.

lpstrTitle
Indicatorul la un șir de caractere, să fie plasate în bara de titlu a casetei de dialog. Dacă acest membru este NULL, sistemul utilizează titlul implicit (care este, Salvare ca sau deschise).
Steaguri
Un set de steaguri pic se poate utiliza pentru a inițializa caseta de dialog. Când se întoarce în caseta de dialog, se setează aceste semnalizări pentru a indica utilizatorului intrare. Acest membru pot fi o combinatie dintre steagurile de următoarele:
Drapelul Sensul
OFN_ALLOWMULTISELECT
Specifică că caseta listăNume Fișierpermite selecții multiple. Dacă setați, de asemenea, pavilionul OFN_EXPLORER, caseta de dialog utilizează interfața cu utilizatorul Explorer-stil; în caz contrar, acesta utilizează interfața cu utilizatorul de stil vechi .

Dacă utilizatorul selectează mai multe fișiere, tampon lpstrFile întoarce calea spre directorul curent urmat de numele fișierelor fi?iere selectate. NFileOffset este decalajul, în octeți sau caractere, numele fișierului prima, și membru nFileExtension nu este utilizat. Pentru casete de dialog Explorer-stil, director și numele de fișier siruri de caractere sunt NULL separate, cu un caracter nul suplimentare după ultima numele fișierului. Acest format permite dialoguri Explorer-stil să se întoarcă numele de fișiere lungi care includ spații. Pentru casete de dialog stil vechi, director și numele de fișier siruri de caractere sunt separate de spații și funcția utilizează fișiere scurt pentru numele fișierelor cu spații. Aveți posibilitatea să utilizați FindFirstFile funcție pentru a face conversia între numele de fișiere lungi și scurte.

Dacă specificați un șablon particularizat pentru o casetă de dialog stil vechi, defini?ia caseta listă de nume de fi?ier trebuie să con?ină valoarea LBS_EXTENDEDSEL.

OFN_CREATEPROMPT
Dacă utilizatorul specifică un fișier care nu există, acest flag provoacă caseta de dialog pentru a solicita utilizatorului permisiunea de a crea fișierul. În cazul în care utilizatorul alege pentru a crea fișierul, se închide caseta de dialog și funcția întoarce numele specificat; în caz contrar, caseta de dialog rămâne deschisă. Dacă utilizați acest steag cu pavilion OFN_ALLOWMULTISELECT, caseta de dialog permite utilizatorului să specificați numai un singur fișier inexistent.
OFN_ENABLEHOOK
Activează funcția de cârlig specificate în membru lpfnHook.
OFN_ENABLESIZING
Windows NT 5.0, Ferestre 98:Permite caseta de dialog Explorer-stil pentru a fi redimensionate utilizând mausul sau tastatura. În mod implicit, casetele de dialog Explorer-stil Deschidere și Salvare ca permite caseta de dialog pentru a fi redimensionat indiferent de dacă acest flag este setat. Acest flag este necesară numai dacă furnizați o procedură cârlig sau șablonul particularizat. Caseta de dialog stil vechi nu permite redimensionarea.
OFN_ENABLETEMPLATE
Indică faptul că membru lpTemplateName puncte de la numele de o resursă de șablon de dialog în modulul identificate de către hInstance.

Dacă pavilion OFN_EXPLORER este stabilit, sistemul utilizează șablonul specificat pentru a crea o casetă de dialog care este un copil din caseta de dialog Explorer-stil implicit. Dacă pavilion OFN_EXPLORER nu este setată, sistemul utilizează șablonul pentru a crea o casetă de dialog stil vechi, care înlocuiește caseta de dialog implicită.

OFN_ENABLETEMPLATEHANDLE
Indică faptul că hInstance membre identifică un bloc de date care conține un șablon de caseta de preloaded dialog. Sistemul ignoră lpTemplateName dacă acest flag este specificat.

Dacă pavilion OFN_EXPLORER este stabilit, sistemul utilizează șablonul specificat pentru a crea o casetă de dialog care este un copil din caseta de dialog Explorer-stil implicit. Dacă pavilion OFN_EXPLORER nu este setată, sistemul utilizează șablonul pentru a crea o casetă de dialog stil vechi, care înlocuiește caseta de dialog implicită.

OFN_EXPLORER
Indică faptul că orice particularizări făcute la caseta de dialog Deschidere sau Salvare ca utilizați metode noi de personalizare Explorer-stil. Pentru mai multe informații, consultați Explorer-stil cârlig procedurile și Explorer-stil particularizat șabloane.

În mod implicit, casetele de dialog Deschidere și Salvare ca utilizează interfața cu utilizatorul Explorer-stil indiferent de dacă acest flag este setat. Acest flag este necesară numai dacă vă oferă un cârlig procedura sau particularizate șablonul sau setați pavilion OFN_ALLOWMULTISELECT.

Dacă doriți interfața cu utilizatorul de stil vechi, omite pavilion OFN_EXPLORER și oferă un șablon de stil vechi de înlocuire sau cârlig procedura. Dacă doriți stilul vechi, dar nu nevoie de un șablon particularizat sau cârlig procedura, pur și simplu oferi o procedură de cârlig care întotdeauna întoarce FALSE.

OFN_EXTENSIONDIFFERENT
Specifică dacă utilizatorul tastat o extensie de nume de fișier care diferă de la extinderea specificate de lpstrDefExt. Funcția nu utilizează acest flag dacă lpstrDefExt este NULL.
OFN_FILEMUSTEXIST
Specifică că utilizatorul poate introduceți numai numele de fișiere existente în câmpul intrare deNume de Fișier. Dacă acest flag este specificat și utilizatorul introduce un nume incorect, procedura de caseta de dialog afișează un avertisment într-o casetă de mesaj. Dacă acest flag este specificat, pavilionul OFN_PATHMUSTEXIST, de asemenea, este utilizat .
OFN_HIDEREADONLY
Ascunde citit doar caseta de selectare.
OFN_LONGNAMES
Pentru casete de dialog stil vechi, acest flag provoacă caseta de dialog pentru a utiliza lungi. Dacă acest flag nu este specificat sau pavilionul OFN_ALLOWMULTISELECT este, de asemenea, setat, casetele de dialog stil vechi utilizarea fișierelor scurt (8.3 format) pentru numele fișierelor cu spații.

Casetele de dialog Explorer-stil ignora acest steag și afișa întotdeauna lungi.

OFN_NOCHANGEDIR
Restabilește directorul curent la valoarea sa originală dacă utilizatorul modifică directorul în timp ce căutarea fi?ierelor.
OFN_NODEREFERENCELINKS
Direcționează caseta de dialog pentru a reveni calea și numele fișierului selectat comanda rapidă (.Fișier LNK). Dacă această valoare nu este dat, caseta de dialog întoarce calea și numele fișierului din fișier referită de comenzi rapide
OFN_NOLONGNAMES
Pentru casete de dialog stil vechi, acest flag provoacă caseta de dialog pentru a utiliza fișiere scurt (8.3 format).

Casetele de dialog Explorer-stil ignora acest steag și afișa întotdeauna lungi.

OFN_NONETWORKBUTTON
Ascunde și dezactivează butonul rețea.
OFN_NOREADONLYRETURN
Specifică că fișierul returnate nu au citit doar caseta de selectare verificate și nu este într-un director protejat la scriere.
OFN_NOTESTFILECREATE
Specifică că fișierul nu este creat înainte de caseta de dialog este închisă. Această semnalizare trebuie să fie specificat dacă aplicarea salvează fișierul de pe o partajare de rețea crearea-nonmodify. Atunci când o aplicație specifică acest flag, biblioteca nu verifică pentru protec?ia scrie, un plin disc, o unitate deschis ușa sau protecție de rețea. Aplicatii folosind acest flag efectuează operațiunile de dosar cu atenție, pentru că un fișier nu poate fi redeschis după ce este închis.
OFN_NOVALIDATE
Specifică că casetele de dialog comun permite caractere incorecte în returnate numele fișierului. De obicei, aplica?ia apelantă utilizează o procedură de cârlig care verifică numele fișierului utilizând FILEOKSTRING mesajul. Dacă caseta text în comanda editare este necompletat sau conține nimic, dar spații, listele de fi?iere ?i directoare sunt actualizate. Dacă caseta text în comanda Editare conține orice altceva, nFileOffset și nFileExtension sunt setate la valorile generate de parsare textul. Extensia implicită nu este adăugat la textul, nici nu este text copiat în tamponul specificat de lpstrFileTitle.
Dacă valoarea specificată prin nFileOffset este mai mică de zero, numele fișierului este nevalid. În caz contrar, numele fișierului este valabil, și nFileExtension și nFileOffset pot fi utilizate ca în cazul în care pavilion OFN_NOVALIDATE nu a fost specificat.
OFN_OVERWRITEPROMPT
Cauzeleîn caseta de dialog Salvarepentru a genera o casetă de mesaj dacă fi?ierul selectat există deja. Utilizatorul trebuie să confirme dacă pentru a suprascrie fișierul .
OFN_PATHMUSTEXIST
Specifică că utilizatorul poate tip numai Trasee valabil ?i numele fișierelor. Dacă acest flag este utilizat și utilizatorul tipuri un invalid calea și numele fișierului în câmpul intrare denume de Fișier, funcția de caseta de dialog afișează un avertisment într-o casetă de mesaj .
OFN_READONLY
Cauzele citit doar caseta de selectare se verifică inițial atunci când caseta de dialog este creat. Acest flag indică starea de citire doar caseta de selectare atunci când caseta de dialog este închisă.
OFN_SHAREAWARE
Specifică dacă un apel la OpenFile funcția nu reușește din cauza o violare de partajare în re?ea, eroarea este ignorat și caseta de dialog întoarce numele fișierului selectat.

Dacă acest flag nu este setată, caseta de dialog notifică dvs. cârlig procedura atunci când o violare de partajare în re?ea se produce pentru numele de fișier specificat de utilizator. Dacă setați pavilion OFN_EXPLORER, caseta de dialog trimite mesaj CDN_SHAREVIOLATION procedura cârlig. Dacă nu setați OFN_EXPLORER, caseta de dialog trimite mesajul SHAREVISTRING înregistrate pentru procedura cârlig.

OFN_SHOWHELP
Cauzele caseta de dialog pentru a afișa butonul Ajutor . Membru hwndOwner trebuie să specificați fereastra pentru a primi HELPMSGSTRING înregistrat mesaje care caseta de dialog trimite atunci când utilizatorul face clic pe butonul Ajutor.

O casetă de dialog Explorer-stil trimite un mesaj de notificare CDN_HELP dvs. cârlig procedura atunci când utilizatorul face clic pe butonul Ajutor.


nFileOffset
Specifică zero-based offset, în octeți (ANSI versiunea) sau 16-bit caractere (Unicode traducere), la începutul calea la numele de fișier în șirul a subliniat de lpstrFile. De exemplu, dacă lpstrFile puncte la următorul șir, "c:\dir1\dir2\file.ext", acest membru conține valoarea 13 pentru a indica decalajul șirul "file.ext".

Dacă utilizatorul selectează mai multe fișiere, nFileOffset este deplasarea la primul filename.

nFileExtension
Specifică zero-based offset, în octeți (ANSI versiunea) sau 16-bit caractere (Unicode traducere), la începutul calea extensia fișierului din șirul a subliniat de lpstrFile. De exemplu, dacă lpstrFile puncte la următorul șir, "c:\dir1\dir2\file.ext", acest membru conține valoarea 18. Dacă utilizatorul nu a făcut tastați extensia și lpstrDefExt este NULL, acest membru specifică un offset la care caracter nul. Dacă utilizatorul tastat "." ca ultimul caracter în numele de fișier, acest membru specifică zero.
lpstrDefExt
Puncte la un tampon care conține extensia implicită. GetOpenFileName și GetSaveFileName adăugați această extensie pentru numele fișierului în cazul în care utilizatorul nu reușește să tastați extensia. Acest șir poate fi orice lungime, dar numai primele trei caractere sunt adăugate. Șir nu trebuie să con?ină un punct (.). Dacă acest membru este NULL și utilizatorul nu reușește să tastați o extensie, este adăugat nici o prelungire.
lCustData
Specifică date definite de aplicarea că sistemul trece la procedura cârlig identificate de către lpfnHook . Atunci când sistemul trimite mesajul WM_INITDIALOG procedura cârlig, mesajului lParam parametru este un indicator spre structura OPENFILENAME specificat când caseta de dialog a fost creat. Procedura cârlig poate utiliza acest indicator pentru a obține valoarea lCustData.
lpfnHook
Indicatorul pentru a o procedură cârlig. Acest membru este ignorată dacă membrul steaguri include pavilion OFN_ENABLEHOOK.

Dacă pavilion OFN_EXPLORER nu este setată în membre steaguri , lpfnHook este un indicator spre o procedură de cârlig OFNHookProcOldStyle care primește mesaje destinate pentru caseta de dialog. Procedura cârlig întoarce FALSE transmite un mesaj la regimul caseta de dialog implicită sau adevărat să se debaraseze mesajul.

Dacă OFN_EXPLORER se setează, lpfnHook este un indicator spre o procedură de cârlig OFNHookProc . Procedura cârlig primește mesajele de notificare trimise în caseta de dialog. Procedura cârlig, de asemenea, primește mesaje pentru orice controale suplimentare pe care ați definit-specificând un șablon de dialog copil. Procedura cârlig nu primesc mesaje destinate controalele standard din caseta de dialog implicită.

lpTemplateName
Indicatorul un șir null-terminated care denumește o resursă de șablon de dialog în modulul identificate de către hInstance . Pentru dialog numerotate caseta de resurse, aceasta poate fi o valoare returnată de macrocomanda MAKEINTRESOURCE . Acest membru este ignorată dacă pavilion OFN_ENABLETEMPLATE este setat în membre steaguri.

Dacă pavilion OFN_EXPLORER este stabilit, sistemul utilizează șablonul specificat pentru a crea o casetă de dialog care este un copil din caseta de dialog Explorer-stil implicit. Dacă pavilion OFN_EXPLORER nu este setată, sistemul utilizează șablonul pentru a crea o casetă de dialog stil vechi, care înlocuiește caseta de dialog implicită.

QuickInfo

nbsp; Windows &NT: necesită versiunea 3.1 sau mai târziu.
Windows:Necesită Windows 95 sau o versiune ulterioară.
Windows CE:Necesită versiunea 1.0 sau mai târziu.
Antet:A declarat în commdlg.h.
Unicode:Definit ca structurile Unicode și ANSI.

A se vedea, de asemenea

Comune Dialog casetă de prezentare biblioteca, structuri comune de caseta de Dialog, GetOpenFileName, GetSaveFileName, SHGetSpecialFolderLocation

Index