La struttura OPENFILENAME contiene informazioni che le funzioni di GetSaveFileName e GetOpenFileName utilizzano per inizializzare un aprire o salvarecome dialogo comune. Dopo che l'utente chiude la finestra di dialogo, il sistema restituisce informazioni sulla selezione dell'utente in questa struttura .
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 Flags;
WORD nFileOffset;
WORD nFileExtension;
LPCTSTR lpstrDefExt;
DWORD lCustData;
LPOFNHOOKPROC lpfnHook;
LPCTSTR lpTemplateName;
} OPENFILENAME
Se è impostato il flag OFN_EXPLORER, il sistema utilizza il modello specificato per creare una finestra di dialogo che è figlio della finestra di dialogo tipo Esplora risorse predefinite. Se non è impostato il flag OFN_EXPLORER, il sistema utilizza il modello per creare un vecchio stile dialogo che sostituisce la finestra di dialogo predefinita.
La prima stringa in ogni coppia è una stringa di visualizzazione che descrive il filtro (ad esempio, "file di testo") e la seconda stringa specifica il modello di filtro (ad esempio, "*.TXT"). Per specificare più modelli di filtro per una visualizzazione singola stringa, utilizzare un punto e virgola per separare i modelli (ad esempio, "*.TXT; *.DOC; *.BAK"). Una stringa modello può essere una combinazione di caratteri del nome di file valido e il carattere jolly asterisco. Non contengono spazi nella stringa di modello.
Il sistema non cambia l'ordine dei filtri. Li visualizza nella casella combinata atipi di Filenell'ordine specificato in lpstrFilter .
Se lpstrFilter è NULL, nella finestra di dialogo non verranno visualizzati tutti i filtri.
Se questo membro è NULL, nella finestra di dialogo non verranno conservate modelli definiti dall'utente di filtro.
Se questo membro non è NULL, il valore del membro nMaxCustFilter deve specificare la dimensione in byte (versione ANSI) o in caratteri (versione Unicode), a 16-bit del buffer lpstrCustomFilter.
Se nFilterIndex è uguale a zero e lpstrCustomFilter è NULL, il sistema utilizza il primo filtro nel buffer di lpstrFilter . Se tutti e tre i membri sono zero o NULL, il sistema non utilizza tutti i filtri e non mostra tutti i file nel controllo elenco file della finestra di dialogo.
Se è impostato il flag OFN_ALLOWMULTISELECT e l'utente seleziona file multipli, il buffer contiene la directory corrente, seguita dai nomi dei file dei file selezionati. Per finestre di dialogo di tipo Esplora risorse, le stringhe di directory e filename sono NULL separati, con un carattere NULL supplementare dopo l'ultimo filename. Per finestre di dialogo di vecchio stile, le stringhe sono lo spazio separato e la funzione utilizza i nomi di file brevi per nomi di file con spazi. È possibile utilizzare la FindFirstFile funzione per convertire tra i nomi di file lunghi e brevi.
Se il buffer è troppo piccolo, la funzione restituisce FALSE e la funzione CommDlgExtendedError restituisce FNERR_BUFFERTOOSMALL. In questo caso, i primi due byte del buffer lpstrFile contengono la necessaria dimensione in byte o in caratteri.
Windows NT 5.0 e versioni successive; Windows 98 e successive:
Se lpstrInitalDir è NULL e la directory corrente contiene tutti i file dei tipi di filtro specificato, la directory iniziale è la directory corrente.
Se lpstrInitalDir è NULL e la directory corrente non contiene tutti i file dei tipi di filtro specificato, la directory iniziale è la directory di file personali dell'utente corrente. Per specificare la directory di file personali dell'utente corrente come directory iniziale, impostare lpstrInitialDir percorso restituito chiamando il SHGetSpecialFolderLocation funzione con il flag CSIDL_PERSONAL.
Versioni precedenti di Windows e Windows NT:
Se lpstrInitalDir è NULL, la directory iniziale è la directory corrente.
| Bandiera | Significato |
|---|---|
| OFN_ALLOWMULTISELECT | |
| Specifica che la casella di riepilogo File nome consente selezioni multiple. Se si imposta anche la bandiera OFN_EXPLORER, nella finestra di dialogo utilizza l'interfaccia utente di tipo Esplora risorse; in caso contrario, utilizza l'interfaccia utente di vecchio stile. Se l'utente seleziona più file, il buffer lpstrFile restituisce il percorso della directory corrente seguita dai nomi dei file dei file selezionati. Il membro nFileOffset è l'offset, in byte o caratteri, al primo nome file, e non viene utilizzato il membro nFileExtension . Per finestre di dialogo di tipo Esplora risorse, le stringhe di directory e filename sono NULL separati, con un carattere NULL supplementare dopo l'ultimo filename. Questo formato consente le finestre di dialogo di tipo Esplora risorse restituire i nomi di file lunghi che contengono spazi. Per finestre di dialogo di vecchio stile, le stringhe di directory e il nome del file sono separate da spazi e la funzione utilizza i nomi di file brevi per nomi di file con spazi. È possibile utilizzare la FindFirstFile funzione per convertire tra i nomi di file lunghi e brevi. Se si specifica un modello personalizzato per un vecchio stile di dialogo, la definizione della casella di riepilogo Nome File deve contenere il valore LBS_EXTENDEDSEL. |
|
| OFN_CREATEPROMPT | |
| Se l'utente specifica un file che non esiste, questo flag provoca la finestra di dialogo richiedere all'utente per l'autorizzazione a creare il file. Se l'utente sceglie di creare il file, si chiude la finestra di dialogo e la funzione restituisce il nome specificato; in caso contrario, la finestra di dialogo rimane aperta. Se si utilizza questo flag con il flag OFN_ALLOWMULTISELECT, finestra di dialogo consente all'utente di specificare un solo file inesistente. | |
| OFN_ENABLEHOOK | |
| Attiva la funzione di hook specificata nel membro lpfnHook. | |
| OFN_ENABLESIZING | |
| Windows NT 5.0, Windows 98:Attiva la finestra di dialogo tipo Esplora risorse essere ridimensionata utilizzando il mouse o la tastiera. Per impostazione predefinita, le finestre di dialogo di tipo Esplora risorse aperte e Salva come consentono il dialogo per essere ridimensionato indipendentemente se questo flag è impostato. Questo flag è necessario solo se si fornisce una routine di hook o un modello personalizzato. Nella finestra di dialogo di vecchio stile non consente il ridimensionamento. | |
| OFN_ENABLETEMPLATE | |
| Indica che il membro lpTemplateName indica il nome di una risorsa modello di finestra di dialogo nel modulo identificato dal membro hInstance. Se è impostato il flag OFN_EXPLORER, il sistema utilizza il modello specificato per creare una finestra di dialogo che è figlio della finestra di dialogo tipo Esplora risorse predefinite. Se non è impostato il flag OFN_EXPLORER, il sistema utilizza il modello per creare un vecchio stile dialogo che sostituisce la finestra di dialogo predefinita. |
|
| OFN_ENABLETEMPLATEHANDLE | |
| Indica che il membro hInstance identifica un blocco di dati che contiene un modello di finestra di dialogo precaricati. Il sistema ignora il lpTemplateName se questo flag viene specificato. Se è impostato il flag OFN_EXPLORER, il sistema utilizza il modello specificato per creare una finestra di dialogo che è figlio della finestra di dialogo tipo Esplora risorse predefinite. Se non è impostato il flag OFN_EXPLORER, il sistema utilizza il modello per creare un vecchio stile dialogo che sostituisce la finestra di dialogo predefinita. |
|
| OFN_EXPLORER | |
| Indica che tutte le personalizzazioni apportate nella finestra di dialogo Apri o Salva come utilizzano i nuovi metodi di personalizzazione di tipo Esplora risorse. Per ulteriori informazioni, vedere Procedure gancio di tipo Esplora risorse e Modelli personalizzati di tipo Esplora risorse. Per impostazione predefinita, le finestre di dialogo Apri e Salva come utilizzano l'interfaccia utente di tipo Esplora risorse indipendentemente se questo flag è impostato. Questo flag è necessario solo se si fornisce una routine di hook o modello personalizzato, o impostare il flag OFN_ALLOWMULTISELECT. Se si desidera che l'interfaccia utente di vecchio stile, omettere la bandiera OFN_EXPLORER e fornire un modello di vecchio stile di sostituzione o agganciare la procedura. Se si desidera che il vecchio stile, ma non hanno bisogno di un modello personalizzato o agganciare la procedura, semplicemente fornire una routine di hook che restituisce sempre FALSE. |
|
| OFN_EXTENSIONDIFFERENT | |
| Specifica che l'utente digitato un estensione che si differenzia dall'estensione specificato da lpstrDefExt. La funzione non utilizza questo flag se lpstrDefExt è NULL. | |
| OFN_FILEMUSTEXIST | |
| Specifica che l'utente può digitare solo nomi di file esistenti nel campo di immissione delnome del File. Se questo flag viene specificato e l'utente immette un nome non valido, la procedura di finestra di dialogo viene visualizzato un avviso in una finestra di messaggio. Se questo flag viene specificato, la bandiera OFN_PATHMUSTEXIST viene inoltre utilizzata . | |
| OFN_HIDEREADONLY | |
| Nasconde la lettura solo casella di controllo. | |
| OFN_LONGNAMES | |
| Per le finestre di dialogo di vecchio stile, questo flag provoca la finestra di dialogo di utilizzare nomi di file lunghi. Se questo flag non è specificato, o se anche è impostato il flag OFN_ALLOWMULTISELECT, finestre di dialogo di vecchio stile utilizzano nomi brevi dei file (formato 8.3) per nomi di file con spazi. Finestre di dialogo di tipo Esplora risorse ignorano questo flag e sempre visualizzare nomi lunghi. |
|
| OFN_NOCHANGEDIR | |
| Ripristina la directory corrente al valore originale se l'utente ha modificato la directory durante la ricerca di file. | |
| OFN_NODEREFERENCELINKS | |
| Dirige la finestra di dialogo per restituire il percorso e il nome del collegamento selezionato (.File LNK). Se questo valore non è fornito, nella finestra di dialogo restituisce il percorso e il nome di file del file cui si fa riferimento dalla scorciatoia | |
| OFN_NOLONGNAMES | |
| Per finestre di dialogo di vecchio stile, questo flag determina un dialogo per utilizzare nomi brevi dei file (formato 8.3). Finestre di dialogo di tipo Esplora risorse ignorano questo flag e sempre visualizzare nomi lunghi. |
|
| OFN_NONETWORKBUTTON | |
| Nasconde e disabilita il pulsante rete. | |
| OFN_NOREADONLYRETURN | |
| Specifica che il file restituito non ha letto solo casella di controllo selezionata e non si trova in una directory protetta da scrittura. | |
| OFN_NOTESTFILECREATE | |
| Specifica che il file non è creato prima finestra di dialogo è chiuso. Questo flag deve essere specificato se l'applicazione salva il file su una condivisione di rete crea-nonmodify. Quando un'applicazione specifica di questo flag, la libreria non verifica per protezione scrittura, un disco completo, una porta aperta in auto o protezione di rete. Le applicazioni che utilizzano questa bandiera devono eseguire operazioni sui file con attenzione, perché un file non può essere riaperto una volta che si è chiuso. | |
| OFN_NOVALIDATE | |
| Specifica che le finestre di dialogo comuni consentono caratteri non validi nel nome del file restituito. In genere, l'applicazione chiamante utilizza una routine di hook che controlla il nome del file utilizzando il messaggio FILEOKSTRING. Se la casella di testo nel controllo di modifica è vuota o non contiene nulla, ma gli spazi, vengono aggiornati gli elenchi di file e directory. Se la casella di testo nel controllo di modifica contiene altri elementi, nFileOffset e nFileExtension sono impostate su valori generati mediante l'analisi del testo. Nessuna estensione predefinita viene aggiunto al testo, né è testo copiato nel buffer specificato da lpstrFileTitle. | |
| Se il valore specificato da nFileOffset è minore di zero, il nome del file non è valido. In caso contrario, il nome del file è valida, e nFileExtension e nFileOffset può essere utilizzati come se il flag OFN_NOVALIDATE non era stato specificato. | |
| OFN_OVERWRITEPROMPT | |
| Provoca salvare come nella finestra di dialogo generare una finestra di messaggio se esiste già il file selezionato. L'utente deve confermare se sovrascrivere il file. | |
| OFN_PATHMUSTEXIST | |
| Specifica che l'utente può digitare solo validi percorsi e nomi file. Se questo flag viene utilizzato e l'utente digita un valido percorso e il nome nel camponome Filedi ingresso, la funzione della finestra di dialogo viene visualizzato un avviso in una finestra di messaggio . | |
| OFN_READONLY | |
| Provoca la lettura solo casella di controllo essere controllati inizialmente quando viene creata la finestra di dialogo. Questo flag indica lo stato della lettura solo casella di controllo quando viene chiusa la finestra di dialogo. | |
| OFN_SHAREAWARE | |
| Specifica che se una chiamata alla funzione OpenFile non riesce a causa di una violazione di condivisione in rete, l'errore viene ignorato e nella finestra di dialogo restituisce il nome del file selezionato. Se questo flag non è impostato, finestra di dialogo notifica vostra routine di hook quando una violazione di condivisione in rete si verifica per il nome file specificato dall'utente. Se si imposta il flag OFN_EXPLORER, finestra di dialogo Invia il messaggio CDN_SHAREVIOLATION la routine di hook. Se non si imposta OFN_EXPLORER, finestra di dialogo Invia il messaggio registrato di SHAREVISTRING alla routine di hook. |
|
| OFN_SHOWHELP | |
| Provoca la finestra di dialogo visualizzare il pulsante Help . Il membro hwndOwner deve specificare la finestra per ricevere il HELPMSGSTRING registrati messaggi inviati nella finestra di dialogo quando l'utente fa clic sul pulsante Guida. Una finestra di dialogo stile Explorer invia un messaggio di notifica CDN_HELP alla vostra routine di hook quando l'utente fa clic sul pulsante Guida. |
|
Se l'utente seleziona più file, nFileOffset è l'offset per il nome del primo file.
Se il flag OFN_EXPLORER non è impostato nel membro flag , lpfnHook è un puntatore a una procedura di gancio OFNHookProcOldStyle che riceve i messaggi destinati a nella finestra di dialogo. La routine di hook restituisce FALSE per passare un messaggio alla procedura di casella di dialogo predefinita o TRUE per scartare il messaggio.
Se OFN_EXPLORER è impostato, il lpfnHook è un puntatore a una routine di hook OFNHookProc . La routine di hook riceve i messaggi di notifica inviati nella finestra di dialogo. La routine di hook anche riceve i messaggi per tutti i controlli aggiuntivi definiti specificando un modello di finestra di dialogo del bambino. La routine di hook non riceve i messaggi destinati a controlli standard della finestra di dialogo predefinita.
Se è impostato il flag OFN_EXPLORER, il sistema utilizza il modello specificato per creare una finestra di dialogo che è figlio della finestra di dialogo tipo Esplora risorse predefinite. Se non è impostato il flag OFN_EXPLORER, il sistema utilizza il modello per creare un vecchio stile dialogo che sostituisce la finestra di dialogo predefinita.
nbsp; Windows &NT: richiede 3.1 o versione successiva.
Windows:Richiede Windows 95 o versioni successive.
Windows CE:Richiede la versione 1.0 o successiva.
Intestazione:Dichiarati in commdlg.h.
Unicode:Definito come strutture di Unicode e ANSI.
Comuni Dialog Box Library panoramica, strutture di Box di dialogo comuni, GetOpenFileName, GetSaveFileName, SHGetSpecialFolderLocation
Rimedio: Inserire il CD-ROM CD di MSDN Library.