Partager via


CComboBoxEx, classe

Étend le contrôle de zone de liste déroulante en fournissant la prise en charge des listes d'images.

Syntaxe

class CComboBoxEx : public CComboBox

Membres

Constructeurs publics

Nom Description
CComboBoxEx ::CComboBoxEx Construit un objet CComboBoxEx.

Méthodes publiques

Nom Description
CComboBoxEx ::Create Crée la zone de liste modifiable et l’attache à l’objet CComboBoxEx .
CComboBoxEx ::CreateEx Crée une zone de liste modifiable avec les styles étendus Windows spécifiés et l’attache à un ComboBoxEx objet.
CComboBoxEx ::D eleteItem Supprime un élément d’un ComboBoxEx contrôle.
CComboBoxEx ::GetComboBoxCtrl Récupère un pointeur vers le contrôle de zone de liste modifiable enfant.
CComboBoxEx ::GetEditCtrl Récupère le handle dans la partie modifier le contrôle d’un ComboBoxEx contrôle.
CComboBoxEx ::GetExtendedStyle Récupère les styles étendus utilisés pour un ComboBoxEx contrôle.
CComboBoxEx ::GetImageList Récupère un pointeur vers la liste d’images affectée à un ComboBoxEx contrôle.
CComboBoxEx ::GetItem Récupère les informations d’élément d’un élément donné ComboBoxEx .
CComboBoxEx ::HasEditChanged Détermine si l’utilisateur a modifié le contenu du ComboBoxEx contrôle d’édition en tapant.
CComboBoxEx ::InsertItem Insère un nouvel élément dans un ComboBoxEx contrôle.
CComboBoxEx ::SetExtendedStyle Définit des styles étendus au sein d’un ComboBoxEx contrôle.
CComboBoxEx ::SetImageList Définit une liste d’images pour un ComboBoxEx contrôle.
CComboBoxEx ::SetItem Définit les attributs d’un élément dans un ComboBoxEx contrôle.
CComboBoxEx ::SetWindowTheme Définit le style visuel du contrôle de zone de liste modifiable étendue.

Notes

À l’aide de la création CComboBoxEx de contrôles de zone de liste modifiable, vous n’avez plus besoin d’implémenter votre propre code de dessin d’image. Utilisez plutôt CComboBoxEx pour accéder aux images à partir d’une liste d’images.

Prise en charge de la liste d’images

Dans une zone de liste modifiable standard, le propriétaire de la zone de liste modifiable est responsable du dessin d’une image en créant la zone de liste modifiable en tant que contrôle de dessin propriétaire. Lorsque vous utilisez CComboBoxEx, vous n’avez pas besoin de définir les styles de dessin CBS_OWNERDRAWFIXED et de CBS_HASSTRINGS, car ils sont implicites. Sinon, vous devez écrire du code pour effectuer des opérations de dessin. Un CComboBoxEx contrôle prend en charge jusqu’à trois images par élément : un pour un état sélectionné, un pour un état non sélectionné et un pour une image de superposition.

Styles

CComboBoxEx prend en charge les styles CBS_SIMPLE, CBS_DROPDOWN, CBS_DROPDOWNLIST et WS_CHILD. Tous les autres styles passés lorsque vous créez la fenêtre sont ignorés par le contrôle. Une fois la fenêtre créée, vous pouvez fournir d’autres styles de zone de liste modifiable en appelant la CComboBoxEx fonction membre SetExtendedStyle. Avec ces styles, vous pouvez :

  • Définissez les recherches de chaînes dans la liste pour qu’elles respectent la casse.

  • Créez un contrôle de zone de liste modifiable qui utilise la barre oblique inverse ('/'), les barres obliques inverses ('\') et les caractères point ('.') en tant que délimiteurs de mots. Cela permet aux utilisateurs de passer d’un mot à l’autre à l’aide du raccourci clavier Ctrl+Flèche.

  • Définissez le contrôle de zone de liste modifiable pour afficher ou ne pas afficher une image. Si aucune image n’est affichée, la zone de liste modifiable peut supprimer le retrait du texte qui prend en charge une image.

  • Créez un contrôle de zone de liste modifiable étroite, y compris le dimensionnement afin qu’il extrait la zone de liste modifiable plus large qu’elle contient.

Ces indicateurs de style sont décrits plus loin dans Utilisation de CComboBoxEx.

Attributs de rétention et de rappel d’élément

Les informations d’élément, telles que les index pour les éléments et les images, les valeurs de retrait et les chaînes de texte, sont stockées dans la structure Win32 COMBOBOXEXITEM, comme décrit dans le Kit de développement logiciel (SDK) Windows. La structure contient également des membres qui correspondent aux indicateurs de rappel.

Pour une discussion conceptuelle détaillée, consultez Utilisation de CComboBoxEx.

Hiérarchie d'héritage

CObject

CCmdTarget

CWnd

CComboBox

CComboBoxEx

Spécifications

En-tête : afxcmn.h

CComboBoxEx ::CComboBoxEx

Appelez cette fonction membre pour créer un CComboBoxEx objet.

CComboBoxEx();

CComboBoxEx ::Create

Crée la zone de liste modifiable et l’attache à l’objet CComboBoxEx .

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Paramètres

dwStyle
Spécifie la combinaison de styles de zone de liste modifiable appliquée à la zone de liste modifiable. Pour plus d’informations sur les styles, consultez les remarques ci-dessous.

rect
Référence à un objet CRect ou à une structure RECT, qui est la position et la taille de la zone de liste déroulante.

pParentWnd
Pointeur vers un objet CWnd qui est la fenêtre parente de la zone de liste modifiable (généralement a CDialog). Elle ne doit pas être NULL.

nID
Spécifie l’ID de contrôle de la zone de liste modifiable.

Valeur de retour

Différent de zéro si l’objet a été créé avec succès ; sinon 0.

Notes

Créez un CComboBoxEx objet en deux étapes :

  1. Appelez CComboBoxEx pour construire un CComboBoxEx objet.

  2. Appelez cette fonction membre, qui crée la zone de liste déroulante Windows étendue et l’attache à l’objet CComboBoxEx .

Lorsque vous appelez Create, MFC initialise les contrôles courants.

Lorsque vous créez la zone de liste modifiable, vous pouvez spécifier l’un ou l’ensemble des styles de zone de liste modifiable suivants :

  • CBS_SIMPLE

  • CBS_DROPDOWN

  • CBS_DROPDOWNLIST

  • CBS_AUTOHSCROLL

  • WS_CHILD

Tous les autres styles passés lorsque vous créez la fenêtre sont ignorés. Le ComboBoxEx contrôle prend également en charge les styles étendus qui fournissent des fonctionnalités supplémentaires. Ces styles sont décrits dans les styles étendus de contrôle ComboBoxEx, dans le Kit de développement logiciel (SDK) Windows. Définissez ces styles en appelant SetExtendedStyle.

Si vous souhaitez utiliser des styles windows étendus avec votre contrôle, appelez CreateEx au lieu de Create.

CComboBoxEx ::CreateEx

Appelez cette fonction pour créer un contrôle de zone de liste modifiable étendue (fenêtre enfant) et l’associer à l’objet CComboBoxEx .

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Paramètres

dwExStyle
Spécifie le style étendu du contrôle en cours de création. Pour obtenir la liste des styles Windows étendus, consultez le paramètre dwExStyle pour CreateWindowEx dans le Kit de développement logiciel (SDK) Windows.

dwStyle
Style du contrôle de zone de liste modifiable. Consultez Créer pour obtenir la liste des styles.

rect
Référence à une structure RECT décrivant la taille et la position de la fenêtre à créer, dans les coordonnées clientes de pParentWnd.

pParentWnd
Pointeur vers la fenêtre qui est le parent du contrôle.

nID
ID de la fenêtre enfant du contrôle.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Utilisez CreateEx plutôt que d’appliquer Create des styles Windows étendus, spécifiés par le préface de style étendu Windows WS_EX_.

CreateEx crée le contrôle avec les styles Windows étendus spécifiés par dwExStyle. Vous devez définir des styles étendus spécifiques à un contrôle de zone de liste modifiable étendue à l’aide de SetExtendedStyle. Par exemple, utilisez CreateEx pour définir des styles tels que WS_EX_CONTEXTHELP, mais pour SetExtendedStyle définir des styles tels que CBES_EX_CASESENSITIVE. Pour plus d’informations, consultez les styles décrits dans la rubrique Styles étendus de contrôle ComboBoxEx dans le Kit de développement logiciel (SDK) Windows.

CComboBoxEx ::D eleteItem

Supprime un élément d’un ComboBoxEx contrôle.

int DeleteItem(int iIndex);

Paramètres

iIndex
Index de base zéro de l’élément à supprimer.

Valeur de retour

Nombre d’éléments restants dans le contrôle. Si iIndex n’est pas valide, la fonction retourne CB_ERR.

Notes

Cette fonction membre implémente les fonctionnalités du message CBEM_DELETEITEM, comme décrit dans le Kit de développement logiciel (SDK) Windows. Lorsque vous appelez DeleteItem, un message WM_NOTIFY avec CBEN_DELETEITEM notification est envoyé à la fenêtre parente.

CComboBoxEx ::GetComboBoxCtrl

Appelez cette fonction membre pour obtenir un pointeur vers un contrôle de zone de liste modifiable dans un CComboBoxEx objet.

CComboBox* GetComboBoxCtrl();

Valeur de retour

Pointeur vers un objet CComboBox.

Notes

Le CComboBoxEx contrôle se compose d’une fenêtre parente, qui encapsule un CComboBox.

L’objet CComboBox pointé par la valeur de retour est un objet temporaire et est détruit pendant le prochain temps de traitement inactif.

CComboBoxEx ::GetEditCtrl

Appelez cette fonction membre pour obtenir un pointeur vers le contrôle d’édition d’une zone de liste déroulante.

CEdit* GetEditCtrl();

Valeur de retour

Pointeur vers un objet CEdit .

Notes

Un CComboBoxEx contrôle utilise une zone d’édition lorsqu’elle est créée avec le style CBS_DROPDOWN.

L’objet CEdit pointé par la valeur de retour est un objet temporaire et est détruit pendant le prochain temps de traitement inactif.

CComboBoxEx ::GetExtendedStyle

Appelez cette fonction membre pour obtenir les styles étendus utilisés pour un CComboBoxEx contrôle.

DWORD GetExtendedStyle() const;

Valeur de retour

Valeur DWORD qui contient les styles étendus utilisés pour le contrôle de zone de liste modifiable.

Notes

Pour plus d’informations sur ces styles, consultez Les styles étendus de contrôle ComboBoxEx dans le Kit de développement logiciel (SDK) Windows.

CComboBoxEx ::GetImageList

Appelez cette fonction membre pour obtenir un pointeur vers la liste d’images utilisée par un CComboBoxEx contrôle.

CImageList* GetImageList() const;

Valeur de retour

Pointeur vers un objet CImageList . En cas d’échec, cette fonction membre retourne NULL.

Notes

L’objet CImageList pointé par la valeur de retour est un objet temporaire et est détruit pendant le prochain temps de traitement inactif.

CComboBoxEx ::GetItem

Récupère les informations d’élément d’un élément donné ComboBoxEx .

BOOL GetItem(COMBOBOXEXITEM* pCBItem);

Paramètres

pCBItem
Pointeur vers une structure COMBOBOXEXITEM qui recevra les informations d’élément.

Valeur de retour

Différent de zéro si l’opération a réussi ; sinon 0.

Notes

Cette fonction membre implémente les fonctionnalités du message CBEM_GETITEM, comme décrit dans le Kit de développement logiciel (SDK) Windows.

CComboBoxEx ::HasEditChanged

Détermine si l’utilisateur a modifié le contenu du ComboBoxEx contrôle d’édition en tapant.

BOOL HasEditChanged();

Valeur de retour

Différent de zéro si l’utilisateur a tapé dans la zone d’édition du contrôle ; sinon 0.

Notes

Cette fonction membre implémente les fonctionnalités du message CBEM_HASEDITCHANGED, comme décrit dans le Kit de développement logiciel (SDK) Windows.

CComboBoxEx ::InsertItem

Insère un nouvel élément dans un ComboBoxEx contrôle.

int InsertItem(const COMBOBOXEXITEM* pCBItem);

Paramètres

pCBItem
Pointeur vers une structure COMBOBOXEXITEM qui recevra les informations d’élément. Cette structure contient des valeurs d’indicateur de rappel pour l’élément.

Valeur de retour

Index auquel le nouvel élément a été inséré en cas de réussite ; sinon -1.

Notes

Lorsque vous appelez InsertItem, un message WM_NOTIFY avec CBEN_INSERTITEM notification est envoyé à la fenêtre parente.

CComboBoxEx ::SetExtendedStyle

Appelez cette fonction membre pour définir les styles étendus utilisés pour un contrôle étendu de zone de liste modifiable.

DWORD SetExtendedStyle(
    DWORD dwExMask,
    DWORD dwExStyles);

Paramètres

dwExMask
Valeur DWORD qui indique les styles dans dwExStyles à affecter. Seuls les styles étendus dans dwExMask seront modifiés. Tous les autres styles seront conservés comme c’est le cas. Si ce paramètre est égal à zéro, tous les styles dans dwExStyles sont affectés.

dwExStyles
Valeur DWORD qui contient les styles étendus de contrôle de zone de liste modifiable à définir pour le contrôle.

Valeur de retour

Valeur DWORD qui contient les styles étendus précédemment utilisés pour le contrôle.

Notes

Pour plus d’informations sur ces styles, consultez Les styles étendus de contrôle ComboBoxEx dans le Kit de développement logiciel (SDK) Windows.

Pour créer un contrôle étendu de zone de liste modifiable avec des styles windows étendus, utilisez CreateEx.

CComboBoxEx ::SetImageList

Définit une liste d’images pour un ComboBoxEx contrôle.

CImageList* SetImageList(CImageList* pImageList);

Paramètres

pImageList
Pointeur vers un CImageList objet contenant les images à utiliser avec le CComboBoxEx contrôle.

Valeur de retour

Pointeur vers un objet CImageList contenant les images précédemment utilisées par le CComboBoxEx contrôle. NULL si aucune liste d’images n’a été définie précédemment.

Notes

Cette fonction membre implémente les fonctionnalités du message CBEM_SETIMAGELIST, comme décrit dans le Kit de développement logiciel (SDK) Windows. Si vous modifiez la hauteur du contrôle d’édition par défaut, appelez la fonction Win32 SetWindowPos pour redimensionner votre contrôle après l’appel SetImageList, ou elle ne s’affiche pas correctement.

L’objet CImageList pointé par la valeur de retour est un objet temporaire et est détruit pendant le prochain temps de traitement inactif.

CComboBoxEx ::SetItem

Définit les attributs d’un élément dans un ComboBoxEx contrôle.

BOOL SetItem(const COMBOBOXEXITEM* pCBItem);

Paramètres

pCBItem
Pointeur vers une structure COMBOBOXEXITEM qui recevra les informations d’élément.

Valeur de retour

Différent de zéro si l’opération a réussi ; sinon 0.

Notes

Cette fonction membre implémente les fonctionnalités du message CBEM_SETITEM, comme décrit dans le Kit de développement logiciel (SDK) Windows.

CComboBoxEx ::SetWindowTheme

Définit le style visuel du contrôle de zone de liste modifiable étendue.

HRESULT SetWindowTheme(LPCWSTR pszSubAppName);

Paramètres

pszSubAppName
Pointeur vers une chaîne Unicode qui contient le style visuel de zone de liste modifiable étendue à définir.

Valeur de retour

La valeur de retour n’est pas utilisée.

Notes

Cette fonction membre émule les fonctionnalités du message CBEM_SETWINDOWTHEME , comme décrit dans le Kit de développement logiciel (SDK) Windows.

Voir aussi

MFC, exemple MFCIE
CComboBox, classe
Graphique hiérarchique
CComboBox, classe