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
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ă.
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.
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.
Î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.
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.
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.
| 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. |
|
Dacă utilizatorul selectează mai multe fișiere, nFileOffset este deplasarea la primul filename.
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ă.
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ă.
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.
Comune Dialog casetă de prezentare biblioteca, structuri comune de caseta de Dialog, GetOpenFileName, GetSaveFileName, SHGetSpecialFolderLocation