De NAAMOPENBESTAND structuur bevat informatie die de GetOpenFileName en GetSaveFileName functies gebruiken om een dialoogvenster openen of Opslaan als gemeenschappelijk initialiseren. Nadat de gebruiker het dialoogvenster sluit, geeft het systeem informatie over de selectie van de gebruiker in deze structuur.
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 Vlaggen;
WORD nFileOffset;
WORD nFileExtension;
LPCTSTR lpstrDefExt;
DWORD lCustData;
LPOFNHOOKPROC lpfnHook;
LPCTSTR lpTemplateName;
} NAAMOPENBESTAND
Als de vlag OFN_EXPLORER is ingesteld, gebruikt het systeem de opgegeven sjabloon te maken een dialoogvenster dat is een kind van het dialoogvenster standaard Verkenner-stijl. Als de vlag OFN_EXPLORER is niet ingesteld, het systeem de sjabloon gebruikt om een oude-stijl dialoogvenster maken waarin het dialoogvenster standaard vervangt.
De eerste tekenreeks in elk paar is een weergavereeks die beschrijft het filter (bijvoorbeeld "tekstbestanden"), en de tweede tekenreeks aangeeft het filterpatroon (bijvoorbeeld "*.TXT"). Gebruik een puntkomma te scheiden van de patronen te geven meerdere filter patronen voor een enkele weergavereeks (bijvoorbeeld "*.TXT; *.DOC; *.BAK"). Een patroon string kunnen een combinatie zijn van geldige bestandsnaam tekens en het jokerteken sterretje. Neem geen spaties in de tekenreeks patroon.
Het systeem verandert niet de volgorde van de filters. Het geeft ze weer in het vakbestandstypen combo in de volgorde die is opgegeven in lpstrFilter .
Als lpstrFilter NULL is, worden het dialoogvenster geen filters niet weergegeven.
Als dit lid NULL is, behouden het dialoogvenster gebruiker gedefinieerde filter patronen niet.
Als dit lid niet nul is, moet de waarde van het lid nMaxCustFilter de grootte, in bytes (ANSI-versie) of 16-bits tekens (Unicode versie), opgeven van de buffer lpstrCustomFilter.
Als nFilterIndex nul is en lpstrCustomFilter NULL is, gebruikt het systeem de eerste filter in de buffer lpstrFilter . Als alle drie leden nul of NULL zijn, het systeem maakt geen gebruik van filters en toont niet alle bestanden in het besturingselement voor de lijst van het dialoogvenster.
Als de vlag OFN_ALLOWMULTISELECT is ingesteld en de gebruiker meerdere bestanden selecteert, bevat de buffer de huidige directory, gevolgd door de bestandsnamen van de geselecteerde bestanden. Voor dialoogvensters Verkenner-stijl zijn de directory en bestandsnaam tekenreeksen gescheiden, met een extra NULL-teken na de laatste bestandsnaam NULL. Voor oude-stijl dialoogvensters, de snaren zijn ruimte gescheiden en de functie worden korte bestandsnamen gebruikt voor bestandsnamen met spaties. U kunt de FindFirstFile functie om te converteren tussen lange en korte bestandsnamen.
Als de buffer te klein is, retourneert de functie onwaar en retourneert de functie CommDlgExtendedError FNERR_BUFFERTOOSMALL. In dit geval, bevatten de eerste twee bytes van de buffer lpstrFile de vereiste grootte, in bytes of tekens.
Windows NT 5.0 en hoger; Windows 98 en hoger:
Als lpstrInitalDir NULL is en de huidige map alle bestanden van de opgegeven filtertypen bevat, is de eerste map de huidige map.
Als lpstrInitalDir NULL is en de huidige map niet alle bestanden van de opgegeven filtertypen bevat, is de eerste directory de persoonlijke map van de huidige gebruiker. Als u persoonlijke bestanden map van de huidige gebruiker als de eerste map, lpstrInitialDir ingesteld op het pad geretourneerd door het aanroepen van de SHGetSpecialFolderLocation functie met de vlag CSIDL_PERSONAL.
Eerdere versies van Windows en Windows NT:
Als lpstrInitalDir NULL is, is de eerste map de huidige map.
| Vlag | Betekenis |
|---|---|
| OFN_ALLOWMULTISELECT | |
| Hiermee geeft u aan dat de keuzelijstnaam bestandmeerdere selecties mogelijk maakt. Als u ook de vlag OFN_EXPLORER is ingesteld, de Verkenner-stijl gebruikersinterface; wordt gebruikt in het dialoogvenster anders, het maakt gebruik van de oude-stijl gebruikersinterface . Als de gebruiker meer dan één bestand wordt geselecteerd, de lpstrFile buffer als resultaat het pad naar de huidige directory, gevolgd door de bestandsnamen van de geselecteerde bestanden. De nFileOffset lid is de verschuiving, in bytes of tekens, aan de eerste filename, en lid van de nFileExtension wordt niet gebruikt. Voor dialoogvensters Verkenner-stijl zijn de directory en bestandsnaam tekenreeksen gescheiden, met een extra NULL-teken na de laatste bestandsnaam NULL. Deze indeling maakt het mogelijk de Verkenner-stijl dialoogvensters om terug te keren lange bestandsnamen die spaties bevatten. Voor oude-stijl dialoogvensters, de directory en bestandsnaam tekenreeksen worden gescheiden door spaties en de functie worden korte bestandsnamen gebruikt voor bestandsnamen met spaties. U kunt de FindFirstFile functie om te converteren tussen lange en korte bestandsnamen. Als u een aangepaste sjabloon voor een oude-stijl dialoogvenster opgeeft, moet de definitie van de keuzelijst met invoervak Bestandsnaam de LBS_EXTENDEDSEL-waarde bevatten. |
|
| OFN_CREATEPROMPT | |
| Als de gebruiker Hiermee geeft u een bestand dat niet bestaat, wordt deze vlag het dialoogvenster aan de gebruiker om toestemming om het bestand te maken. Als de gebruiker ervoor kiest om het bestand te maken, het dialoogvenster wordt gesloten en de functie als resultaat de opgegeven naam; anders blijft het dialoogvenster geopend. Als u deze vlag niet met de vlag OFN_ALLOWMULTISELECT gebruiken, kan het dialoogvenster de gebruiker slechts één niet-bestaand bestand opgeven. | |
| OFN_ENABLEHOOK | |
| Laat de haak functie die is opgegeven in de lpfnHook lid. | |
| OFN_ENABLESIZING | |
| Windows NT 5.0, Windows 98:Laat het dialoogvenster Verkenner-stijl worden aangepast met de muis of het toetsenbord. Standaard toegestaan de dialoogvensters Verkenner-stijl Open en Opslaan als in het dialoogvenster to be resized ongeacht of deze vlag is ingesteld. Deze vlag is alleen nodig als u een haak procedure of een aangepaste sjabloon bieden. De oude-stijl dialoogvenster niet mogelijk vergroten/verkleinen. | |
| OFN_ENABLETEMPLATE | |
| Geeft aan dat de lpTemplateName lid naar de naam van een resource dialoogvenster sjabloon in de module geïdentificeerd door de hInstance lid verwijst. Als de vlag OFN_EXPLORER is ingesteld, gebruikt het systeem de opgegeven sjabloon te maken een dialoogvenster dat is een kind van het dialoogvenster standaard Verkenner-stijl. Als de vlag OFN_EXPLORER is niet ingesteld, het systeem de sjabloon gebruikt om een oude-stijl dialoogvenster maken waarin het dialoogvenster standaard vervangt. |
|
| OFN_ENABLETEMPLATEHANDLE | |
| Geeft aan dat de hInstance lid identificeert een gegevensblok dat een voorgeladen dialoogvenster vak sjabloon bevat. Het systeem negeert de lpTemplateName als deze vlag is opgegeven. Als de vlag OFN_EXPLORER is ingesteld, gebruikt het systeem de opgegeven sjabloon te maken een dialoogvenster dat is een kind van het dialoogvenster standaard Verkenner-stijl. Als de vlag OFN_EXPLORER is niet ingesteld, het systeem de sjabloon gebruikt om een oude-stijl dialoogvenster maken waarin het dialoogvenster standaard vervangt. |
|
| OFN_EXPLORER | |
| Geeft aan dat alle aanpassingen in het dialoogvenster openen of Opslaan als nieuwe Verkenner-stijl aanpassen methoden gebruiken. Voor meer informatie, Zie Verkenner-stijl haak Procedures en Verkenner-stijl aangepaste sjablonen. De dialoogvensters openen en Opslaan als gebruiken standaard de Verkenner-stijl gebruikersinterface ongeacht of deze vlag is ingesteld. Deze vlag is nodig, alleen als u een haak procedure of aangepaste sjabloon bieden, of stel de vlag OFN_ALLOWMULTISELECT. Als u de oude-stijl gebruikersinterface wilt, de vlag OFN_EXPLORER weglaat en bieden een vervanging oude-stijl sjabloon of haak procedure. Als u wilt dat de oude stijl maar niet nodig een aangepaste sjabloon of haak procedure, eenvoudigweg een haak procedure die altijd FALSE retourneert. |
|
| OFN_EXTENSIONDIFFERENT | |
| Hiermee geeft u aan dat de gebruiker getypte een extensie van de bestandsnaam die van de extensie opgegeven door lpstrDefExt verschilt. De functie maakt geen gebruik van deze vlag als lpstrDefExt NULL is. | |
| OFN_FILEMUSTEXIST | |
| Hiermee geeft u aan dat de gebruiker alleen de namen van bestaande bestanden in het invoerveld bestand naam kunt typen. Als deze vlag is opgegeven en de gebruiker een ongeldige naam invoert, wordt het dialoogvenster vak procedure een waarschuwing weergegeven in een berichtvenster. Als deze vlag is opgegeven, wordt ook de OFN_PATHMUSTEXIST vlag gebruikt. | |
| OFN_HIDEREADONLY | |
| Leeshet selectievakjealleen verbergt . | |
| OFN_LONGNAMES | |
| Voor oude-stijl dialoogvensters veroorzaakt deze vlag het dialoogvenster gebruik van lange bestandsnamen. Als deze vlag niet is opgegeven, of als de vlag OFN_ALLOWMULTISELECT is ook ingesteld, oude-stijl dialoogvensters gebruiken korte bestandsnamen (8.3-indeling) voor bestandsnamen met spaties. Verkenner-stijl dialoogvensters negeren deze vlag en altijd lange bestandsnamen weergeven. |
|
| OFN_NOCHANGEDIR | |
| Herstelt de huidige map op de oorspronkelijke waarde als de gebruiker de map gewijzigd tijdens het zoeken naar bestanden. | |
| OFN_NODEREFERENCELINKS | |
| Hiermee geeft u het dialoogvenster om terug te keren het pad en de bestandsnaam van de geselecteerde sneltoets (.LNK) bestand. Als deze waarde niet is opgegeven, retourneert het dialoogvenster het pad en de bestandsnaam van het bestand waarnaar wordt verwezen door de snelkoppeling | |
| OFN_NOLONGNAMES | |
| Deze markering voor oude-stijl dialoogvensters, zorgt ervoor dat het dialoogvenster gebruiken korte bestandsnamen (8.3-indeling). Verkenner-stijl dialoogvensters negeren deze vlag en altijd lange bestandsnamen weergeven. |
|
| OFN_NONETWORKBUTTON | |
| Wordt verborgen en wordt de knop netwerk uitgeschakeld. | |
| OFN_NOREADONLYRETURN | |
| Hiermee geeft u aan dat het resulterende bestand geen lezen alleen het selectievakje gecontroleerd heeft en zich niet in een map schrijven-beschermd. | |
| OFN_NOTESTFILECREATE | |
| Hiermee geeft u aan dat het bestand niet is gemaakt voordat het dialoogvenster wordt gesloten. Deze vlag moet worden opgegeven als de toepassing het bestand op een netwerkshare maken-nonmodify slaat. Wanneer een toepassing deze vlag is aangegeven, controleert de bibliotheek niet voor schrijven bescherming, een volledige schijf, een deur open station of netwerk bescherming. Toepassingen met behulp van deze vlag moeten uitvoeren bestandsbewerkingen zorgvuldig, omdat een bestand kan niet opnieuw worden geopend nadat het is gesloten. | |
| OFN_NOVALIDATE | |
| Geeft aan dat de algemene dialoogvensters in de geretourneerde bestandsnaam ongeldige tekens toestaan. Typisch, de aanroepende toepassing gebruikt een haak procedure controleert het bestandsnaam met behulp van het FILEOKSTRING bericht. Als het tekstvak in het invoervak leeg is of alleen maar spaties bevat, worden de lijsten van bestanden en mappen bijgewerkt. Als het tekstvak in het besturingselement bewerken iets anders bevat, zijn nFileOffset en nFileExtension ingesteld op de waarden die zijn gegenereerd door de tekst te parseren. Geen standaardextensie is toegevoegd aan de tekst, noch is tekst gekopieerd naar de buffer opgegeven door lpstrFileTitle. | |
| Als de waarde die is opgegeven door de nFileOffset kleiner is dan nul, is de bestandsnaam ongeldig. Anders, de bestandsnaam is geldig, en nFileExtension en nFileOffset kunnen worden gebruikt als de OFN_NOVALIDATE vlag had niet is opgegeven. | |
| OFN_OVERWRITEPROMPT | |
| Veroorzaaktals het dialoogvenster Opslaanvoor het genereren van een berichtvenster weergegeven als de geselecteerde bestand al bestaat. De gebruiker moet bevestigen of het bestand wilt overschrijven . | |
| OFN_PATHMUSTEXIST | |
| Hiermee geeft u aan dat de gebruiker alleen geldige paden en bestandsnamen kunt typen. Als deze vlag wordt gebruikt en de gebruiker een ongeldig pad en de bestandsnaam in het invoerveld bestand naam typt , de functie vak dialoogvenster wordt een waarschuwing weergegeven in een berichtvenster. | |
| OFN_READONLY | |
| Veroorzaakt lezenhet selectievakjealleen in eerste instantie worden gecontroleerd wanneer het dialoogvenster is gemaakt. Deze vlag geeft de status van lezenhet selectievakjealleen wanneer het dialoogvenster is gesloten . | |
| OFN_SHAREAWARE | |
| Hiermee geeft u aan dat als een aanroep naar de OPENFILE, functie mislukt vanwege een netwerk delen schending, de fout wordt genegeerd en het dialoogvenster geeft de geselecteerde bestandsnaam. Als deze vlag niet is ingesteld, bericht in het dialoogvenster uw haak procedure wanneer een netwerk delen schending voor de door de gebruiker opgegeven bestandsnaam plaatsvindt. Als u de vlag OFN_EXPLORER instellen, signaal het dialoogvenster de CDN_SHAREVIOLATION aan de haak-procedure. Als u OFN_EXPLORER niet instelt, stuurt het dialoogvenster de SHAREVISTRING geregistreerde bericht aan de haak-procedure. |
|
| OFN_SHOWHELP | |
| Het dialoogvenster weergeven op de knop Help wordt. De hwndOwner lid moet opgeven het venster voor het ontvangen van de HELPMSGSTRING geregistreerd berichten die in het dialoogvenster worden verzonden wanneer de gebruiker op de knop Help. Een Explorer-stijl in het dialoogvenster een meldingstekst CDN_HELP naar uw haak procedure gestuurd wanneer de gebruiker op de knop Help. |
|
Als de gebruiker meer dan één bestand wordt geselecteerd, is nFileOffset de verschuiving naar de eerste bestandsnaam.
Als de vlag OFN_EXPLORER is niet ingesteld in de vlaggen lid, is lpfnHook een aanwijzer naar een OFNHookProcOldStyle haak procedure die berichten die bestemd zijn voor het dialoogvenster ontvangt. De haak procedure retourneert FALSE om een boodschap doorgeven aan de standaard dialoogvenster vak procedure of trouw aan negeren het bericht.
Als OFN_EXPLORER is ingesteld, is lpfnHook een aanwijzer naar een OFNHookProc haak procedure. De haak procedure ontvangt meldingen verzonden vanuit het dialoogvenster. De haak procedure ontvangt ook berichten voor extra besturingselementen die u hebt gedefinieerd door een kind dialoogvenster sjabloon op te geven. De haak procedure ontvangt niet berichten die bestemd zijn voor de standaard besturingselementen van het dialoogvenster standaard.
Als de vlag OFN_EXPLORER is ingesteld, gebruikt het systeem de opgegeven sjabloon te maken een dialoogvenster dat is een kind van het dialoogvenster standaard Verkenner-stijl. Als de vlag OFN_EXPLORER is niet ingesteld, het systeem de sjabloon gebruikt om een oude-stijl dialoogvenster maken waarin het dialoogvenster standaard vervangt.
nbsp; Windows &NT: versie 3.1 of hoger vereist.
Windows:Windows 95 of hoger vereist.
Windows CE:Versie 1.0 of hoger vereist.
Header:Verklaard in commdlg.h.
Unicode:Gedefinieerd als Unicode en ANSI structuren.
Overzicht van bibliotheek het gemeenschappelijk dialoogvenster, gemeenschappelijke dialoogvenster vak structuren, GetOpenFileName, GetSaveFileName, SHGetSpecialFolderLocation