Partager via


CWnd::DlgDirListComboBox

Remplit la zone de liste d'une zone de liste déroulante de fichier ou de liste de répertoires.

int DlgDirListComboBox(
   LPTSTR lpPathSpec,
   int nIDComboBox,
   int nIDStaticPath,
   UINT nFileType 
);

Paramètres

  • lpPathSpec
    Pointe vers une chaîne terminée par le caractère NULL qui contient le chemin ou le nom du fichier.DlgDirListComboBox modifie cette chaîne par conséquent, ces données ne doivent pas être sous la forme d'un littéral de chaîne.Consultez la section suivante « notes ».

  • nIDComboBox
    Spécifie l'identificateur d'une zone de liste déroulante dans une boîte de dialogue.Si nIDComboBox est 0, DlgDirListComboBox suppose qu'aucune zone de liste déroulante n'existe et ne tente pas de terminer un.

  • nIDStaticPath
    Spécifie l'identificateur du contrôle de portée texte utilisé pour afficher le lecteur actif et le dossier.Si nIDStaticPath est 0, DlgDirListComboBox suppose qu'aucun contrôle de texte n'est présent.

  • nFileType
    Spécifie les attributs de fichier de publication des fichiers à afficher.Ce peut être toute combinaison des valeurs suivantes :

    • Fichiers de données en lecture /écriture deDDL_READWRITE sans attributs supplémentaires.

    • Fichiers en lecture seule deDDL_READONLY .

    • Fichiers masqués deDDL_HIDDEN .

    • Fichiers système deDDL_SYSTEM .

    • Répertoires deDDL_DIRECTORY .

    • Archives deDDL_ARCHIVE .

    • DDL_POSTMSGS   Balise deCB_DIR .Si la balise de CB_DIR est définie, les fenêtres définit les messages générés par DlgDirListComboBox dans la file d'attente de l'application ; sinon, elles sont destinées directement à la procédure de boîte de dialogue.

    • Lecteurs deDDL_DRIVES .Si la balise de DDL_DRIVES est définie, la balise de DDL_EXCLUSIVE est définie automatiquement.Par conséquent, pour créer une liste de dossiers qui inclut des lecteurs et des fichiers, vous devez appeler DlgDirListComboBox deux fois : une fois avec l'indicateur de DDL_DRIVES et une fois avec les indicateurs pour le reste de la liste.

    • Bit de type exclusif deDDL_EXCLUSIVE .Si le bit exclusif est défini, seuls les fichiers du type spécifié sont répertoriés ; les fichiers sinon normaux et les fichiers de type spécifié sont répertoriés.

Valeur de retour

Spécifie les résultats de la fonction.Il est différent de zéro si une liste a été effectuée, même une liste vide.Les 0 valeurs de retour impliquent que la chaîne d'entrée n'est pas contenu un chemin de recherche valide.

Notes

DlgDirListComboBox envoie des messages de CB_RESETCONTENT et de CB_DIR à la zone de liste déroulante.Elle remplit la zone de liste de la zone de liste déroulante spécifiée par nIDComboBox de noms de tous les fichiers qui correspondent au chemin d'accès donné par lpPathSpec.

Le paramètre d' lpPathSpec a la forme suivante :

[drive:] [ [\u]directory[\idirectory]... \u] [filename]

Dans cet exemple, drive est une lettre de lecteur, directory est un nom de répertoire valide, et le nom de fichier est un nom de fichier valide qui doit contenir au moins un masque.Les masques sont un point d'interrogation (?), qui signifie la correspondance un caractère, et un astérisque (*), qui signifie la correspondance un certain nombre de caractères.

Si vous spécifiez une chaîne de longueur nulle pour lpPathSpec, le répertoire actif est utilisé et lpPathSpec ne sera pas modifié.Si vous spécifiez un seul nom de dossier mais n'incluez pas tout spécification de fichier, la chaîne sera modifiée « * ».

Si lpPathSpec inclut un lecteur et/ou un nom de répertoire, le lecteur actif et le répertoire sont modifiés sur le lecteur et au répertoire indiqués avant que la zone de liste est remplie.Le contrôle de texte identifié par nIDStaticPath est également mis à jour avec le nouveau lecteur et/ou nom de dossier.

Une fois la zone de liste de la zone de liste déroulante est remplie, lpPathSpec est mis à jour en supprimant la partie du lecteur et/ou de répertoire du chemin d'accès.

Exemple

// If pDialog points to a CDialog object with a combo box
// with the identifier IDC_DIRCOMBO, this call will populate
// the box with only the non-hidden subdirectories in the root
// directory of the C:\ drive. 

TCHAR szPath[MAX_PATH];
_tcsncpy_s(szPath, MAX_PATH, _T("C:\\"), MAX_PATH);
pDialog->DlgDirListComboBox(szPath, IDC_DIRCOMBO, 0, DDL_EXCLUSIVE | 
   DDL_DIRECTORY);

// Note that the first argument is a string and not a string 
// literal. This is necessary because DlgDirListComboBox 
// modifies the supplied string. Passing a string literal 
// will result in an access violation.   

Configuration requise

Header: afxwin.h

Voir aussi

Référence

CWnd, classe

Graphique de la hiérarchie

CWnd::DlgDirList

CWnd::DlgDirSelect

DlgDirListComboBox