CFileDialog de classe

Encapsule la boîte de dialogue commune utilisée pour ouvrir le fichier ou les opérations de sauvegarde de fichier.

class CFileDialog : public CCommonDialog

Membres

dk77e5e7.collapse_all(fr-fr,VS.110).gifConstructeurs publics

Nom

Description

CFileDialog::CFileDialog

Construit un objet CFileDialog.

dk77e5e7.collapse_all(fr-fr,VS.110).gifMéthodes publiques

Nom

Description

CFileDialog::AddCheckButton

Ajoute un contrôle au bouton de dialogue.

CFileDialog::AddComboBox

Ajoute une zone de liste déroulante de dialogue.

CFileDialog::AddControlItem

Ajoute un élément à un contrôle conteneur dans la boîte de dialogue.

CFileDialog::AddEditBox

Ajoute une zone d'édition au dialogue.

CFileDialog::AddMenu

Ajoute un menu à la boîte de dialogue.

CFileDialog::AddPlace

Surchargé.Ajoute un dossier à la liste d'emplacements disponibles pour l'utilisateur ouvre ou pour enregistrer des éléments.

CFileDialog::AddPushButton

Ajoute un bouton au dialogue.

CFileDialog::AddRadioButtonList

Ajoute un groupe de case d'option (également appelé la case d'option) à la boîte de dialogue.

CFileDialog::AddSeparator

Ajoute un séparateur de dialogue.

CFileDialog::AddText

Ajoute le contenu de texte au dialogue.

CFileDialog::ApplyOFNToShellDialog

Met à jour l'état d' CFileDialog pour correspondre aux paramètres et les balises stockés dans la variable membre d' m_ofn .

CFileDialog::DoModal

Affiche la boîte de dialogue et permet à l'utilisateur d'effectuer une sélection.

CFileDialog::EnableOpenDropDown

Active une liste déroulante du bouton Ouvrir ou Enregistrer dans la boîte de dialogue.

CFileDialog::EndVisualGroup

Arrête l'ajout d'éléments à un groupe visuel dans la boîte de dialogue.

CFileDialog::GetCheckButtonState

Obtient l'état actuel d'un bouton de contrôle (case à cocher) dans la boîte de dialogue.

CFileDialog::GetControlItemState

Obtient l'état actuel d'un élément dans un contrôle conteneur trouvé dans la boîte de dialogue.

CFileDialog::GetControlState

Passe la visibilité actuelle et les rapports activés d'un contrôle donné.

CFileDialog::GetEditBoxText

Obtient le texte actuel dans un contrôle de zone d'édition.

CFileDialog::GetFileExt

Retourne l'extension du fichier sélectionné.

CFileDialog::GetFileName

Retourne le nom de fichier du fichier sélectionné.

CFileDialog::GetFileTitle

Retourne le titre du fichier sélectionné.

CFileDialog::GetFolderPath

Récupère le chemin d'accès du dossier ou du dossier actuellement ouvert pour Ouvrir ou une boîte de dialogue de style explorateur communs Enregistrer sous .

CFileDialog::GetIFileDialogCustomize

Récupère l'objet COM interne d'un objet personnalisé d' CFileDialog .

CFileDialog::GetIFileOpenDialog

Récupère l'objet COM interne pour CFileDialog utilisé en tant que boîte de dialogue Fichier Ouvrir .

CFileDialog::GetIFileSaveDialog

Récupère l'objet COM interne pour CFileDialog utilisé en tant que boîte de dialogue Fichier Enregistrer .

CFileDialog::GetNextPathName

Retourne le chemin d'accès complet suivant du fichier sélectionné.

CFileDialog::GetOFN

Extrait la structure d' OPENFILENAME de l'objet d' CFileDialog .

CFileDialog::GetPathName

Retourne le chemin d'accès complet du fichier sélectionné.

CFileDialog::GetReadOnlyPref

Retourne l'état de lecture seule du fichier sélectionné.

CFileDialog::GetResult

Obtient le choix que l'utilisateur a fait dans la boîte de dialogue.

CFileDialog::GetResults

Obtient les choix de l'utilisateur dans une boîte de dialogue qui permet la sélection multiple.

CFileDialog::GetSelectedControlItem

Obtient un élément particulier les contrôles conteneur spécifiés dans la boîte de dialogue.

CFileDialog::GetStartPosition

Retourne la position du premier élément de la liste de noms.

CFileDialog::HideControl

Masque le contrôle spécifié dans Ouvrir ou une boîte de dialogue de style explorateur communs Enregistrer sous .

CFileDialog::IsPickFoldersMode

Détermine si la boîte de dialogue actuel en mode de sélecteur de dossier.

CFileDialog::MakeProminent

Définit un contrôle dans la boîte de dialogue afin qu'il fasse tienne par rapport à d'autres contrôles ajoutés.

CFileDialog::RemoveControlItem

Supprime un élément d'un contrôle conteneur dans la boîte de dialogue.

CFileDialog::SetCheckButtonState

Définit l'état actuel d'un bouton de contrôle (case à cocher) dans la boîte de dialogue.

CFileDialog::SetControlItemState

Définit l'état actuel d'un élément dans un contrôle conteneur trouvé dans la boîte de dialogue.

CFileDialog::SetControlItemText

Définit le texte d'un élément de contrôle.Par exemple, le texte court qui accompagne une case d'option ou un élément d'un menu.

CFileDialog::SetControlLabel

Définit le texte associé à un contrôle, par exemple le texte du bouton ou une étiquette de la zone d'édition.

CFileDialog::SetControlState

Définit la visibilité actuelle et les rapports activés d'un contrôle donné.

CFileDialog::SetControlText

Définit le texte du contrôle spécifié dans Ouvrir ou une boîte de dialogue de style explorateur communs Enregistrer sous .

CFileDialog::SetDefExt

Définit l'extension de nom de fichier par défaut pour Ouvrir ou une boîte de dialogue de style explorateur communs Enregistrer sous .

CFileDialog::SetEditBoxText

Définit le texte actuel dans un contrôle de zone d'édition.

CFileDialog::SetProperties

Fournit une mémoire de propriété qui définit les valeurs par défaut à utiliser pour l'élément qui est enregistré.

CFileDialog::SetSelectedControlItem

Définit l'état sélectionné d'un élément particulier à un groupe de cases d'option ou une zone de liste déroulante a trouvé dans la boîte de dialogue.

CFileDialog::SetTemplate

Définit le modèle de boîte de dialogue pour l'objet d' CFileDialog .

CFileDialog::StartVisualGroup

Déclare un groupe visuel dans la boîte de dialogue.Les appels suivants à dans « add » la méthode ajoutez ces éléments à ce groupe.

CFileDialog::UpdateOFNFromShellDialog

Met à jour les données stockées dans la variable membre d' m_ofn pour faire correspondre l'état actuel de la boîte de dialogue Fichier.

dk77e5e7.collapse_all(fr-fr,VS.110).gifMéthodes protégées

Nom

Description

CFileDialog::OnButtonClicked

Appelé lorsque l'utilisateur clique sur le bouton.

CFileDialog::OnCheckButtonToggled

Appelé lorsque la case à cocher est activée ou non réprimé.

CFileDialog::OnControlActivating

Appelé lorsque le contrôle est actif.

CFileDialog::OnFileNameChange

Gère le message d' WM_NOTIFY CDN_SELCHANGE .

CFileDialog::OnFileNameOK

Valide le nom de fichier spécifié dans la boîte de dialogue.

CFileDialog::OnFolderChange

Gère le message d' WM_NOTIFY CDN_FOLDERCHANGE .

CFileDialog::OnInitDone

Gère le message d' WM_NOTIFY CDN_INITDONE .

CFileDialog::OnItemSelected

Appelé lorsque l'élément de conteneur est sélectionné.

CFileDialog::OnLBSelChangedNotify

Vous permet d'exécuter des actions personnalisées lorsque la sélection du fichier change.

CFileDialog::OnShareViolation

Violations de partage de handles.

CFileDialog::OnTypeChange

Gère le message d' WM_NOTIFY CDN_TYPECHANGE .

dk77e5e7.collapse_all(fr-fr,VS.110).gifDonnées membres publiques

Nom

Description

CFileDialog::m_ofn

La structure d' OPENFILENAME windows.Fournit l'accès aux paramètres de base de la boîte de dialogue Fichier.

Notes

Les boîtes de dialogue courantes Fichier vous permettent d'implémenter des boîtes de dialogue de sélection de fichier, par exemple, Ouvrir un fichier et Enregistrer sous, d'une manière qui est compatible avec les normes de windows.

Vous pouvez utiliser CFileDialog tel quel avec le constructeur fourni, ou vous pouvez dériver votre propre classe de boîte de dialogue d' CFileDialog et écrire un constructeur pour l'adapter à vos besoins.Dans les deux cas, ces boîtes de dialogue se comporteront comme les boîtes de dialogue MFC standard car elles proviennent de Classe de CCommonDialog.CFileDialog repose sur le fichier de COMMDLG.DLL inclus dans windows.

L'apparence et les fonctionnalités d' CFileDialog avec Windows Vista diffèrent des versions antérieures de windows.La valeur par défaut CFileDialog utilise automatiquement le style d' Windows Vista sans modifications de code si un programme est compilé et exécuté sous Windows Vista.Utilisez le paramètre d' bVistaStyle dans le constructeur pour substituer manuellement cette mise à jour automatique.L'exception à la mise à jour automatique sont les boîtes de dialogue personnalisées.Elles ne sont pas converties vers le nouveau style.Pour plus d'informations sur le constructeur, consultez CFileDialog::CFileDialog.

[!REMARQUE]

Le système ID de contrôle diffère dans Windows Vista les versions antérieures de windows lorsque vous utilisez CFileDialog.Vous devez mettre à jour toutes les références aux contrôles d' CFileDialog dans le code avant de pouvoir déplacer votre projet d'une version antérieure de windows.

Certaines méthodes d' CFileDialog ne sont pas prises en charge dans Windows Vista.Consultez la rubrique individuel de méthode pour les informations sur si la méthode est prise en charge.En outre, les fonctions héritées suivantes ne sont pas prises en charge dans Windows Vista:

Les messages windows pour la classe d' CFileDialog varient selon le système d'exploitation vous utilisez.Par exemple, Windows XP ne prend pas CDialog::OnCancel et CDialog::OnOK pour la classe d' CFileDialog .Toutefois, Windows Vista les prend en charge.Pour plus d'informations sur les différents messages générés et l'ordre dans lequel ils sont reçus, consultez l' Exemple de CFileDialog : Commande de enregistrement d'événements.

Pour utiliser un objet d' CFileDialog , créez d'abord l'objet à l'aide de le constructeur d' CFileDialog .Une fois la boîte de dialogue a été générée, vous pouvez définir ou modifier les valeurs dans la structure de CFileDialog::m_ofn pour initialiser les valeurs ou les états des contrôles de boîte de dialogue.La structure d' m_ofn est de type OPENFILENAME.Pour plus d'informations, consultez la structure d' OPENFILENAME dans Kit de développement logiciel Windows.

Après avoir initialisé les contrôles de boîte de dialogue, appelez la méthode de CFileDialog::DoModal pour afficher la boîte de dialogue afin que l'utilisateur puisse entrer le chemin d'accès et le nom de fichier.DoModal retourne si l'utilisateur a cliqué sur OK (IDOK) ou le bouton de l'annulation (IDCANCEL).Si DoModal retourne IDOK, vous pouvez utiliser l'une des fonctions membres publiques d' CFileDialog pour récupérer les informations mises dans par l'utilisateur.

[!REMARQUE]

Sous Windows Vista, les appels multiples à IFileDialog::SetFileTypes provoque une erreur.Le deuxième appel à SetFileTypes pour toute instance d' CFileDialog retourne E_UNEXPECTED dans Windows Vista.Un appel de fonctions de méthode d' CFileDialogSetFileTypes.Par exemple, deux appels à CFileDialog::DoModal pour la même instance d' CFileDialog génère ASSERT.

CFileDialog inclut plusieurs membres protégés qui vous permettent d'effectuer la gestion personnalisée des violations de partage, la validation de nom de fichier, et la notification de modifications de zone de liste.Ces membres protégés sont des fonctions de rappel que la plupart des applications n'ont pas les utiliser car la gestion par défaut est exécutée automatiquement.Les entrées de la table des messages pour ces fonctions ne sont pas requises parce qu'ils sont des fonctions virtuelles standard.

Vous pouvez utiliser la fonction de CommDlgExtendedError windows pour déterminer si une erreur s'est produite pendant l'initialisation de la boîte de dialogue et pour en savoir plus sur l'erreur.

La destruction des objets d' CFileDialog est gérée automatiquement.Vous ne devez pas appeler CDialog::EndDialog.

Pour conserver les fichiers threads sélectionnés d'utilisateur, définissez l'indicateur d' OFN_ALLOWMULTISELECT avant d'appeler DoModal.Vous devez fournir votre propre mémoire tampon de nom de fichier pour s'adapter à la liste retournée de noms de fichier en.Faites ceci en remplaçant m_ofn.lpstrFile par un pointeur vers une mémoire tampon que vous avez alloué, après avoir construit CFileDialog, mais avant d'appeler DoModal.

En outre, vous devez définir m_ofn.nMaxFile à l'aide de le nombre de caractères dans la mémoire tampon pointée pointe vers m_ofn.lpstrFile.Si vous définissez le nombre maximal de fichiers à sélectionner à n, la taille de mémoire tampon requise est n * (_MAX_PATH + 1) + 1.Le premier élément retourné en mémoire tampon est le chemin d'accès au dossier dans lequel les fichiers ont été sélectionnés.Pour les boîtes de dialogue de style d' Windows Vista, les chaînes de répertoire et de nom de fichier sont se terminant par null, avec un caractère Null supplémentaire après le dernier nom de fichier.Ce format permet aux boîtes de dialogue de style explorateur de retourner les noms de fichiers longs qui incluent des espaces.Pour les boîtes de dialogue à l'ancien, les chaînes de répertoire et de nom de fichier sont séparées par des espaces et la fonction utilise des noms de fichiers courts pour les noms de fichiers avec des espaces.

L'exemple suivant montre comment utiliser une mémoire tampon pour récupérer et répertorier les noms de fichier en.

#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++;
  }
}

Pour modifier la taille de la mémoire tampon en réponse à l'utilisateur en sélectionnant les noms de fichier en, vous devez dériver une nouvelle classe d' CFileDialog et substituer la méthode d' CFileDialog::OnFileNameChange .

Si vous dérivez une nouvelle classe d' CFileDialog, vous pouvez utiliser une table des messages pour gérer tous les messages.Pour étendre la gestion des messages par défaut, dérivez une classe d' CFileDialog, ajoutez une table des messages à la nouvelle classe, et fournissent les fonctions membres pour les nouveaux messages.Vous ne devez pas fournir une fonction de raccordement pour personnaliser la boîte de dialogue.

Pour personnaliser la boîte de dialogue, dérivez une classe d' CFileDialog, fournissez un modèle de boîte de dialogue personnalisé, puis ajoutez une table des messages pour traiter les messages de notification des contrôles étendus.Passez tous les messages non-traités à la classe de base.Vous ne devez pas personnaliser la fonction de raccordement.

Lorsque vous utilisez le style d' Windows Vista d' CFileDialog, vous ne pouvez pas utiliser les tables des messages et les modèles de boîte de dialogue.À la place, vous devez utiliser les interfaces COM pour des fonctionnalités semblables.

Pour plus d'informations sur l'utilisation de CFileDialog, consultez Classes de boîte de dialogue courantes.

Hiérarchie d'héritage

CObject

CCmdTarget

CWnd

CDialog

CCommonDialog

CFileDialog

Configuration requise

**en-tête :**afxdlgs.h

Voir aussi

Référence

Classe de CCommonDialog

Graphique de la hiérarchie