CFileDialog, 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
Constructeurs publics
Nom |
Description |
---|---|
Construit un objet CFileDialog. |
Méthodes publiques
Nom |
Description |
---|---|
Ajoute un contrôle au bouton de dialogue. |
|
Ajoute une zone de liste déroulante de dialogue. |
|
Ajoute un élément à un contrôle conteneur dans la boîte de dialogue. |
|
Ajoute une zone d'édition au dialogue. |
|
Ajoute un menu à la boîte de dialogue. |
|
Surchargé. Ajoute un dossier à la liste d'emplacements disponibles pour l'utilisateur ouvre ou pour enregistrer des éléments. |
|
Ajoute un bouton au dialogue. |
|
Ajoute un groupe de case d'option (également appelé la case d'option) à la boîte de dialogue. |
|
Ajoute un séparateur de dialogue. |
|
Ajoute le contenu de texte au dialogue. |
|
Met à jour l'état d' CFileDialog pour correspondre aux paramètres et les balises stockés dans la variable membre d' m_ofn . |
|
Affiche la boîte de dialogue et permet à l'utilisateur d'effectuer une sélection. |
|
Active une liste déroulante du bouton Ouvrir ou Enregistrer dans la boîte de dialogue. |
|
Arrête l'ajout d'éléments à un groupe visuel dans la boîte de dialogue. |
|
Obtient l'état actuel d'un bouton de contrôle (case à cocher) dans la boîte de dialogue. |
|
Obtient l'état actuel d'un élément dans un contrôle conteneur trouvé dans la boîte de dialogue. |
|
Passe la visibilité actuelle et les rapports activés d'un contrôle donné. |
|
Obtient le texte actuel dans un contrôle de zone d'édition. |
|
Retourne l'extension du fichier sélectionné. |
|
Retourne le nom de fichier du fichier sélectionné. |
|
Retourne le titre du fichier sélectionné. |
|
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 . |
|
Récupère l'objet COM interne d'un objet personnalisé d' CFileDialog . |
|
Récupère l'objet COM interne pour CFileDialog utilisé en tant que boîte de dialogue Fichier Ouvrir . |
|
Récupère l'objet COM interne pour CFileDialog utilisé en tant que boîte de dialogue Fichier Enregistrer . |
|
Retourne le chemin d'accès complet suivant du fichier sélectionné. |
|
Extrait la structure d' OPENFILENAME de l'objet d' CFileDialog . |
|
Retourne le chemin d'accès complet du fichier sélectionné. |
|
Retourne l'état de lecture seule du fichier sélectionné. |
|
Obtient le choix que l'utilisateur a fait dans la boîte de dialogue. |
|
Obtient les choix de l'utilisateur dans une boîte de dialogue qui permet la sélection multiple. |
|
Obtient un élément particulier les contrôles conteneur spécifiés dans la boîte de dialogue. |
|
Retourne la position du premier élément de la liste de noms. |
|
Masque le contrôle spécifié dans Ouvrir ou une boîte de dialogue de style explorateur communs Enregistrer sous . |
|
Détermine si la boîte de dialogue actuel en mode de sélecteur de dossier. |
|
Définit un contrôle dans la boîte de dialogue afin qu'il fasse tienne par rapport à d'autres contrôles ajoutés. |
|
Supprime un élément d'un contrôle conteneur dans la boîte de dialogue. |
|
Définit l'état actuel d'un bouton de contrôle (case à cocher) dans la boîte de dialogue. |
|
Définit l'état actuel d'un élément dans un contrôle conteneur trouvé dans la boîte de dialogue. |
|
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. |
|
Définit le texte associé à un contrôle, par exemple le texte du bouton ou une étiquette de la zone d'édition. |
|
Définit la visibilité actuelle et les rapports activés d'un contrôle donné. |
|
Définit le texte du contrôle spécifié dans Ouvrir ou une boîte de dialogue de style explorateur communs Enregistrer sous . |
|
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 . |
|
Définit le texte actuel dans un contrôle de zone d'édition. |
|
Fournit une mémoire de propriété qui définit les valeurs par défaut à utiliser pour l'élément qui est enregistré. |
|
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. |
|
Définit le modèle de boîte de dialogue pour l'objet d' CFileDialog . |
|
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. |
|
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. |
Méthodes protégées
Nom |
Description |
---|---|
Appelé lorsque l'utilisateur clique sur le bouton. |
|
Appelé lorsque la case à cocher est activée ou non réprimé. |
|
Appelé lorsque le contrôle est actif. |
|
Gère le message d' WM_NOTIFY CDN_SELCHANGE . |
|
Valide le nom de fichier spécifié dans la boîte de dialogue. |
|
Gère le message d' WM_NOTIFY CDN_FOLDERCHANGE . |
|
Gère le message d' WM_NOTIFY CDN_INITDONE . |
|
Appelé lorsque l'élément de conteneur est sélectionné. |
|
Vous permet d'exécuter des actions personnalisées lorsque la sélection du fichier change. |
|
Violations de partage de handles. |
|
Gère le message d' WM_NOTIFY CDN_TYPECHANGE . |
Données membres publiques
Nom |
Description |
---|---|
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 CCommonDialog, classe. 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.
Notes
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.
Notes
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
CFileDialog
Configuration requise
**en-tête :**afxdlgs.h