Classe di CFileDialog

Incapsula la finestra di dialogo comune utilizzata per il file aperto o le operazioni di salvataggio del file.

class CFileDialog : public CCommonDialog

Membri

dk77e5e7.collapse_all(it-it,VS.110).gifCostruttori pubblici

Nome

Descrizione

CFileDialog::CFileDialog

Costruisce un oggetto CFileDialog.

dk77e5e7.collapse_all(it-it,VS.110).gifMetodi pubblici

Nome

Descrizione

CFileDialog::AddCheckButton

Aggiungere un pulsante alla finestra di dialogo.

CFileDialog::AddComboBox

Aggiunge una casella combinata nella finestra di dialogo.

CFileDialog::AddControlItem

Aggiunge un elemento a un controllo contenitore nella finestra di dialogo.

CFileDialog::AddEditBox

Aggiunge una casella di modifica alla finestra di dialogo.

CFileDialog::AddMenu

Aggiunge un menu alla finestra di dialogo.

CFileDialog::AddPlace

Di overload.Aggiunge una cartella all'elenco dei punti disponibili per l'utente per aprire o salvare gli elementi.

CFileDialog::AddPushButton

Aggiungere un pulsante alla finestra di dialogo.

CFileDialog::AddRadioButtonList

Aggiunge un gruppo di pulsanti di opzione (ovvero come pulsante di opzione) nella finestra di dialogo.

CFileDialog::AddSeparator

Aggiunge un separatore alla finestra di dialogo.

CFileDialog::AddText

Aggiunge il contenuto di testo alla finestra di dialogo.

CFileDialog::ApplyOFNToShellDialog

Aggiorna lo stato CFileDialog corrispondente ai parametri e i flag archiviati nella variabile membro m_ofn.

CFileDialog::DoModal

Visualizzare la finestra di dialogo e consente all'utente di effettuare una selezione.

CFileDialog::EnableOpenDropDown

Abilita un elenco a discesa del pulsante Salva o Apri nella finestra di dialogo.

CFileDialog::EndVisualGroup

Interrompe l'aggiunta di elementi a un gruppo visivo nella finestra di dialogo.

CFileDialog::GetCheckButtonState

Ottiene lo stato corrente di un pulsante del controllo (casella di controllo) nella finestra di dialogo.

CFileDialog::GetControlItemState

Ottiene lo stato corrente di un elemento in un controllo contenitore trovato nella finestra di dialogo.

CFileDialog::GetControlState

Ottiene la visibilità corrente e gli stati abilitati di un determinato controllo.

CFileDialog::GetEditBoxText

Ottiene il testo corrente in un controllo casella di modifica.

CFileDialog::GetFileExt

Restituisce l'estensione del file selezionato.

CFileDialog::GetFileName

Restituisce il nome del file selezionato.

CFileDialog::GetFileTitle

Restituisce il nome del file selezionato.

CFileDialog::GetFolderPath

Recupera il percorso della cartella o della directory correntemente aperta per Apri o una finestra di dialogo comune di tipo Esplora risorse Salva con nome.

CFileDialog::GetIFileDialogCustomize

Recupera l'oggetto COM interno di un oggetto personalizzato CFileDialog.

CFileDialog::GetIFileOpenDialog

Recupera l'oggetto COM interno CFileDialog utilizzato come finestra di dialogo File Apri.

CFileDialog::GetIFileSaveDialog

Recupera l'oggetto COM interno CFileDialog utilizzato come finestra di dialogo File Salva.

CFileDialog::GetNextPathName

Restituisce il percorso completo del file una volta selezionato.

CFileDialog::GetOFN

Recuperare la struttura OPENFILENAME dell'oggetto CFileDialog.

CFileDialog::GetPathName

Restituisce il percorso completo del file selezionato.

CFileDialog::GetReadOnlyPref

Restituisce lo stato di sola lettura del file selezionato.

CFileDialog::GetResult

Ottiene la scelta che l'utente ha effettuato nella finestra di dialogo.

CFileDialog::GetResults

Ottiene le opzioni dell'utente in una finestra di dialogo che consente la selezione multipla.

CFileDialog::GetSelectedControlItem

Ottiene un elemento specifico dai controlli contenitori specificati nella finestra di dialogo.

CFileDialog::GetStartPosition

Restituisce la posizione del primo elemento di un elenco di nomi file.

CFileDialog::HideControl

Nasconde il controllo specificato in Apri o una finestra di dialogo comune di tipo Esplora risorse Salva con nome.

CFileDialog::IsPickFoldersMode

Determina se la finestra di dialogo corrente in modalità di selezione della cartella.

CFileDialog::MakeProminent

Inserisce un controllo nella finestra di dialogo in modo che funzioni da confrontata con altri controlli aggiunti.

CFileDialog::RemoveControlItem

Rimuove un elemento da un controllo contenitore nella finestra di dialogo.

CFileDialog::SetCheckButtonState

Imposta lo stato corrente di un pulsante del controllo (casella di controllo) nella finestra di dialogo.

CFileDialog::SetControlItemState

Imposta lo stato corrente di un elemento in un controllo contenitore trovato nella finestra di dialogo.

CFileDialog::SetControlItemText

Imposta il testo di un elemento del controllo.Ad esempio, il testo fornito un pulsante di opzione o un elemento in un menu.

CFileDialog::SetControlLabel

Imposta il testo associata a un controllo, ad esempio testo del pulsante o un'etichetta della casella di modifica.

CFileDialog::SetControlState

Impostare la visibilità corrente e gli stati abilitati di un determinato controllo.

CFileDialog::SetControlText

Imposta il testo del controllo specificato in Apri o una finestra di dialogo comune di tipo Esplora risorse Salva con nome.

CFileDialog::SetDefExt

Impostare l'estensione di file predefinito per Apri o una finestra di dialogo comune di tipo Esplora risorse Salva con nome.

CFileDialog::SetEditBoxText

Imposta il testo corrente in un controllo casella di modifica.

CFileDialog::SetProperties

Fornisce un archivio delle proprietà che definisce i valori predefiniti da utilizzare per l'elemento salvato.

CFileDialog::SetSelectedControlItem

Imposta lo stato selezionato di un elemento specifico in un gruppo di pulsanti di opzione o una casella combinata merge nella finestra di dialogo.

CFileDialog::SetTemplate

Imposta il modello di finestra di dialogo per l'oggetto CFileDialog.

CFileDialog::StartVisualGroup

Dichiara un gruppo visivo nella finestra di dialogo.Le chiamate successive a qualsiasi “aggiunti al metodo aggiungere gli elementi a questo gruppo.

CFileDialog::UpdateOFNFromShellDialog

Aggiorna i dati archiviati in una variabile membro m_ofn in base allo stato corrente della finestra di dialogo File.

dk77e5e7.collapse_all(it-it,VS.110).gifMetodi protetti

Nome

Descrizione

CFileDialog::OnButtonClicked

Chiamato quando viene fatto clic sul pulsante.

CFileDialog::OnCheckButtonToggled

Chiamato quando la casella di controllo è selezionata e selezionare.

CFileDialog::OnControlActivating

Chiamato quando il controllo è attivo.

CFileDialog::OnFileNameChange

Gestisce il messaggio WM_NOTIFY CDN_SELCHANGE.

CFileDialog::OnFileNameOK

Convalida il nome file nella finestra di dialogo.

CFileDialog::OnFolderChange

Gestisce il messaggio WM_NOTIFY CDN_FOLDERCHANGE.

CFileDialog::OnInitDone

Gestisce il messaggio WM_NOTIFY CDN_INITDONE.

CFileDialog::OnItemSelected

Chiamato quando l'elemento contenitore sta selezionando.

CFileDialog::OnLBSelChangedNotify

Consente di eseguire azioni personalizzate quando le modifiche di selezione del file.

CFileDialog::OnShareViolation

Violazioni della condivisione di handle.

CFileDialog::OnTypeChange

Gestisce il messaggio WM_NOTIFY CDN_TYPECHANGE.

dk77e5e7.collapse_all(it-it,VS.110).gifMembri dati pubblici

Nome

Descrizione

CFileDialog::m_ofn

La struttura di Windows OPENFILENAME.Fornisce l'accesso ai parametri di base della finestra di dialogo File.

Note

Le finestre di dialogo dei file comuni consentono di implementare le finestre di dialogo di selezione file, ad esempio, Apri file e Salva con nome, in modo coerente con gli standard di Windows.

È possibile utilizzare CFileDialog come accade con il costruttore fornito, oppure è possibile derivare la classe della finestra di dialogo da CFileDialog e scrivere un costruttore per esigenze.In entrambi i casi, queste finestre di dialogo e un comportamento simili a finestre di dialogo standard di MFC poiché derivano da Classe di CCommonDialog.CFileDialog si basa sul file di COMMDLG.DLL incluso in Windows.

Sia l'aspetto della funzionalità CFileDialog con Windows Vista differiscono dalle versioni precedenti di Windows.L'impostazione predefinita CFileDialog utilizza automaticamente il nuovo stile Windows Vista senza modifiche al codice se un programma viene compilato ed eseguito in Windows Vista.Utilizzare il parametro bVistaStyle nel costruttore manualmente per eseguire l'override di questo aggiornamento automatico.All'aggiornamento automatico è finestre di dialogo in misura.Non verranno convertite nel nuovo stile.Per ulteriori informazioni sul costruttore, vedere CFileDialog::CFileDialog.

[!NOTA]

Il sistema ID del controllo differisce in Windows Vista da versioni precedenti di Windows quando si utilizza CFileDialog.È necessario aggiornare tutti i riferimenti ai controlli CFileDialog nel codice prima di trasferire il progetto da una versione precedente di Windows.

Alcuni metodi CFileDialog non sono supportati in Windows Vista.Verificare il singolo argomento del metodo per informazioni su se il metodo è supportato.Inoltre, le seguenti funzioni ereditate non sono supportate in Windows Vista:

I messaggi di windows per la classe CFileDialog varia a seconda del sistema operativo in uso.Ad esempio, Windows XP non supporta CDialog::OnCancel e CDialog::OnOK per la classe CFileDialog.Tuttavia, Windows Vista li supporta.Per ulteriori informazioni sui diversi messaggi generati e l'ordine in cui vengono ricevuti, vedere esempio di CFileDialog: Ordine degli eventi di registrazione.

Per utilizzare un oggetto CFileDialog, creare innanzitutto l'oggetto utilizzando il costruttore CFileDialog.Dopo la finestra di dialogo è stata creata, è possibile impostare o modificare i valori nella struttura CFileDialog::m_ofn per inizializzare i valori o gli stati dei comandi della finestra di dialogo.La struttura m_ofn è di tipo OPENFILENAME.Per ulteriori informazioni, vedere la struttura OPENFILENAME in Windows SDK.

Dopo avere inizializzato i controlli finestra di dialogo, chiamare il metodo CFileDialog::DoModal per visualizzare la finestra di dialogo in modo da poter immettere l'utente il percorso e il nome file.DoModal restituisce se l'utente ha fatto clic su OK IDOK () o sul pulsante di annullamento (IDCANCEL).Se DoModal restituisce IDOK, è possibile utilizzare una delle funzioni membro pubbliche CFileDialog per recuperare le informazioni immesse nell'utente.

[!NOTA]

In Windows Vista, le chiamate di più a IFileDialog::SetFileTypes provoca un errore.La seconda chiamata a SetFileTypes per ogni istanza CFileDialog restituirà E_UNEXPECTED in Windows Vista.La chiamata di funzioni metodo CFileDialogSetFileTypes.Ad esempio, due chiamate a CFileDialog::DoModal per la stessa istanza CFileDialog generato ASSERT.

CFileDialog include diversi membri protetti che consentono di eseguire la gestione personalizzata di violazioni della condivisione, la convalida del nome file e la notifica di modifica della casella di riepilogo.Questi membri protetti sono funzioni di callback che la maggior parte delle applicazioni non devono utilizzare poiché la gestione predefinita viene eseguita automaticamente.Le voci della mappa messaggi per queste funzioni non sono necessarie perché sono funzioni virtuali standard.

È possibile utilizzare la funzione di Windows CommDlgExtendedError per determinare se si è verificato un errore durante l'inizializzazione della finestra di dialogo e per ulteriori informazioni sull'errore.

L'eliminazione di oggetti CFileDialog viene gestita automaticamente.Non è necessario chiamare CDialog::EndDialog.

Per consentire a più file selezionati dell'utente, impostare il flag OFN_ALLOWMULTISELECT prima di chiamare DoModal.È necessario fornire un buffer di nome file per estendere l'elenco restituito dei nomi più file.Scegliere questo m_ofn.lpstrFile sostituendo con un puntatore a un buffer che è stato allocato, dopo la costruzione CFileDialog, ma prima di chiamare DoModal.

Inoltre, è necessario impostare m_ofn.nMaxFile utilizza il numero di caratteri nel buffer puntato da m_ofn.lpstrFile.Se si imposta il numero massimo di file da selezionare in n, le dimensioni del buffer richieste è n * (_MAX_PATH + 1) + 1.Il primo elemento restituito nel buffer è il percorso della cartella in cui i file sono stati selezionati.Per le finestre di dialogo stile Windows Vista, le stringhe di nome file e la directory vengono con terminazione null, con un carattere null aggiuntivo dopo l'ultimo nome file.Questo formato consente alle finestre di dialogo di tipo Esplora risorse per restituire i nomi di file lunghi che includono spazi.Per le finestre di dialogo obsolete, le stringhe di nome file e la directory sono separate da spazi e la funzione utilizza i nomi brevi file per i nomi file con spazi.

Nell'esempio seguente viene illustrato come utilizzare un buffer per recuperare ed elencare i nomi più file.

#define MAX_CFileDialog_FILE_COUNT 99
#define FILE_LIST_BUFFER_SIZE ((MAX_CFileDialog_FILE_COUNT * (MAX_PATH + 1)) + 1)

CString fileName;
wchar_t* p = fileName.GetBuffer( FILE_LIST_BUFFER_SIZE );
CFileDialog dlgFile(TRUE);
OPENFILENAME& ofn = dlgFile.GetOFN( );
ofn.Flags |= OFN_ALLOWMULTISELECT;
ofn.lpstrFile = p;
ofn.nMaxFile = FILE_LIST_BUFFER_SIZE;

dlgFile.DoModal();
fileName.ReleaseBuffer();

wchar_t* pBufEnd = p + FILE_LIST_BUFFER_SIZE - 2;
wchar_t* start = p;
while( ( p < pBufEnd ) && ( *p ) )
  p++;
if( p > start )
{
  _tprintf(_T("Path to folder where files were selected:  %s\r\n\r\n"), start );
  p++;

  int fileCount = 1;
  while( ( p < pBufEnd ) && ( *p ) )
  {
    start = p;
    while( ( p < pBufEnd ) && ( *p ) )
      p++;
    if( p > start )
      _tprintf(_T("%2d. %s\r\n"), fileCount, start );
    p++;
    fileCount++;
  }
}

Per modificare le dimensioni del buffer in risposta all'utente che seleziona i nomi più file, è necessario derivare una nuova classe da CFileDialog ed eseguire l'override del metodo CFileDialog::OnFileNameChange.

Se si deriva una nuova classe da CFileDialog, è possibile utilizzare una mappa messaggi per gestire tutti i messaggi.Per estendere la gestione dei messaggi predefinito, derivare una classe da CFileDialog, aggiungere una mappa messaggi alla nuova classe e specificare le funzioni membro per i nuovi messaggi.Non è necessario fornire una funzione hook per personalizzare la finestra di dialogo.

Per personalizzare la finestra di dialogo, derivare una classe da CFileDialog, fornire un modello di finestra di dialogo personalizzato e aggiungere una mappa messaggi per elaborare i messaggi di notifica dai controlli estesi.Analizzare tutti i messaggi non elaborati alla classe di base.Non è necessario personalizzare la funzione hook.

Quando si utilizza lo stile Windows VistaCFileDialog, non è possibile utilizzare le mappe dei messaggi e i modelli di finestra di dialogo.Invece, è necessario utilizzare le interfacce COM per funzionalità simile.

Per ulteriori informazioni sull'utilizzo di CFileDialog, vedere Classi comuni della finestra di dialogo.

Gerarchia di ereditarietà

CObject

CCmdTarget

CWnd

CDialog

CCommonDialog

CFileDialog

Requisiti

**Intestazione:**afxdlgs.h

Vedere anche

Riferimenti

Classe di CCommonDialog

Grafico della gerarchia