Partager via


Classe de CComboBox

Fournit les fonctionnalités d'une zone de liste déroulante windows.

class CComboBox : public CWnd

Membres

12h9x0ch.collapse_all(fr-fr,VS.110).gifConstructeurs publics

Nom

Description

CComboBox::CComboBox

Construit un objet CComboBox.

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

Nom

Description

CComboBox::AddString

Ajoute une chaîne à la fin de la liste dans la zone de liste d'une zone de liste déroulante, ou à la position triée pour les zones de liste avec le style de CBS_SORT .

CComboBox::Clear

Supprime (espaces inscription) la sélection actuelle, le cas échéant, dans le contrôle d'édition.

CComboBox::CompareItem

Appelé par l'infrastructure pour déterminer la position relative d'un élément de liste dans une zone de liste déroulante owner-drawn triée.

CComboBox::Copy

Copie la sélection actuelle, le cas échéant, dans le presse-papiers dans le format de CF_TEXT .

CComboBox::Create

Crée la zone de liste déroulante et la attaché à l'objet d' CComboBox .

CComboBox::Cut

Supprime coupes () la sélection actuelle, le cas échéant, dans le contrôle d'édition et les copie le texte supprimé dans le presse-papiers dans le format de CF_TEXT .

CComboBox::DeleteItem

Appelé par l'infrastructure lorsqu'un élément de liste est supprimé d'une zone de liste déroulante owner-drawn.

CComboBox::DeleteString

Supprime une chaîne dans la zone de liste d'une zone de liste déroulante.

CComboBox::Dir

Ajoute une liste de noms de fichier à la zone de liste d'une zone de liste déroulante.

CComboBox::DrawItem

Appelé par l'infrastructure lorsqu'un aspect visuel d'une zone de liste déroulante owner-drawn change.

CComboBox::FindString

Recherche la première chaîne qui contient le préfixe spécifié dans la zone de liste d'une zone de liste déroulante.

CComboBox::FindStringExact

Recherche la première chaîne de zone de liste (dans une zone de liste déroulante) qui correspond à la chaîne spécifiée.

CComboBox::GetComboBoxInfo

Récupère des informations sur l'objet d' CComboBox .

CComboBox::GetCount

Récupère le nombre d'éléments dans la zone de liste d'une zone de liste déroulante.

CComboBox::GetCueBanner

Obtient le texte de caractère indicateur restitué pour un contrôle zone de liste déroulante.

CComboBox::GetCurSel

Récupère l'index actuel de l'élément sélectionné, le cas échéant, dans la zone de liste d'une zone de liste déroulante.

CComboBox::GetDroppedControlRect

Récupère les coordonnées d'écran (déplacé vers le bas) de la zone de liste visible d'une zone de liste déroulante fixe.

CComboBox::GetDroppedState

Détermine si la zone de liste d'une zone de liste déroulante fixe est visible (déplacé vers le bas).

CComboBox::GetDroppedWidth

Extrait la largeur minimum autorisée pour la zone de liste déroulante d'une zone de liste déroulante.

CComboBox::GetEditSel

Obtient les positions des caractères de début et de fin de la sélection actuelle dans le contrôle d'édition d'une zone de liste déroulante.

CComboBox::GetExtendedUI

Détermine si une zone de liste déroulante a l'interface utilisateur par défaut ou l'interface utilisateur étendue.

CComboBox::GetHorizontalExtent

Retourne la largeur en pixels que la partie zone de liste de la zone de liste déroulante peut être horizontale vous faites.

CComboBox::GetItemData

Extrait la valeur 32 bits fournie par l'application associée à l'élément spécifié de zone de liste déroulante.

CComboBox::GetItemDataPtr

Récupère le pointeur 32 bits fourni par l'application qui est associé à l'élément spécifié de zone de liste déroulante.

CComboBox::GetItemHeight

Extrait la hauteur d'éléments de liste dans une zone de liste déroulante.

CComboBox::GetLBText

Obtient une chaîne dans la zone de liste d'une zone de liste déroulante.

CComboBox::GetLBTextLen

Obtient la longueur d'une chaîne dans la zone de liste d'une zone de liste déroulante.

CComboBox::GetLocale

Récupère l'identificateur de paramètres régionaux pour une zone de liste déroulante.

CComboBox::GetMinVisible

Obtient le nombre minimal d'éléments visibles dans la liste déroulante de la zone de liste déroulante actuelle.

CComboBox::GetTopIndex

Retourne l'index du premier élément visible dans la partie zone de liste de la zone de liste déroulante.

CComboBox::InitStorage

Préaffecte les blocs de mémoire pour des éléments et des chaînes dans la partie zone de liste de la zone de liste déroulante.

CComboBox::InsertString

Insère une chaîne dans la zone de liste d'une zone de liste déroulante.

CComboBox::LimitText

Limite la longueur du texte que l'utilisateur peut entrer dans le contrôle d'édition d'une zone de liste déroulante.

CComboBox::MeasureItem

Appelé par l'infrastructure pour déterminer les dimensions zone de liste déroulante lorsqu'une zone de liste déroulante owner-drawn est créée.

CComboBox::Paste

Insère les données du presse-papiers dans le contrôle d'édition à la position du curseur actuelle.Les données sont insérées que si le presse-papiers contient des données au format de CF_TEXT .

CComboBox::ResetContent

Supprime tous les éléments de la zone de liste et du contrôle d'édition d'une zone de liste déroulante.

CComboBox::SelectString

Le recherche une chaîne dans la zone de liste d'une zone de liste déroulante et, si la chaîne est trouvée, sélectionne la chaîne dans la zone de liste et copie la chaîne au contrôle d'édition.

CComboBox::SetCueBanner

Définit le texte de caractère indicateur restitué pour un contrôle zone de liste déroulante.

CComboBox::SetCurSel

Sélectionne une chaîne dans la zone de liste d'une zone de liste déroulante.

CComboBox::SetDroppedWidth

Définit la largeur minimum autorisée pour la zone de liste déroulante d'une zone de liste déroulante.

CComboBox::SetEditSel

Sélectionne des caractères du contrôle d'édition d'une zone de liste déroulante.

CComboBox::SetExtendedUI

Sélectionne l'interface utilisateur par défaut ou l'interface utilisateur étendue pour une zone de liste déroulante qui a le style de CBS_DROPDOWN ou de CBS_DROPDOWNLIST .

CComboBox::SetHorizontalExtent

Définit la largeur en pixels que la partie zone de liste de la zone de liste déroulante peut être horizontale vous faites.

CComboBox::SetItemData

Définit la valeur 32 bits associé à l'élément spécifié dans une zone de liste déroulante.

CComboBox::SetItemDataPtr

Place le pointeur 32 bits associé à l'élément spécifié dans une zone de liste déroulante.

CComboBox::SetItemHeight

Définit la hauteur d'éléments de liste dans une zone de liste déroulante ou la hauteur de la partie de contrôle edit (ou charge- texte) d'une zone de liste déroulante.

CComboBox::SetLocale

Définit l'identificateur de paramètres régionaux pour une zone de liste déroulante.

CComboBox::SetMinVisibleItems

Définit le nombre minimal d'éléments visibles dans la liste déroulante de la zone de liste déroulante actuelle.

CComboBox::SetTopIndex

Indique la partie zone de liste de la zone de liste déroulante pour afficher l'élément de l'index spécifié en haut.

CComboBox::ShowDropDown

Affiche ou masque la zone de liste d'une zone de liste déroulante qui a le style de CBS_DROPDOWN ou de CBS_DROPDOWNLIST .

Notes

Une zone de liste déroulante se compose d'une zone de liste combinée avec un contrôle statique ou le contrôle d'édition.La partie zone de liste du contrôle peut être affichée à tout moment ou peut uniquement déroulante lorsque l'utilisateur sélectionne la flèche de déroulement en regard de le contrôle.

Actuellement l'élément sélectionné (le cas échéant) dans la zone de liste s'affiche dans la ou statique le contrôle d'édition.En outre, si la zone de liste déroulante a le style de liste déroulante, l'utilisateur peut entrer le caractère initial d'un des éléments dans la liste, et la zone de liste, si visible, met en surbrillance l'élément avec ce caractère initial.

Le tableau suivant compare trois la zone de liste déroulante styles.

Style

Lorsque la zone de liste est visible ?

Statique ou contrôle d'édition ?

Simple

Toujours

Modifier

Zone déroulante

Une fois supprimés vers le bas

Modifier

Liste déroulante

Une fois supprimés vers le bas

Static

Vous pouvez créer un objet d' CComboBox d'un modèle de boîte de dialogue ou directement dans votre code.Dans les deux cas, abord appeler le constructeur CComboBox pour construire l'objet d' CComboBox ; appelez la fonction membre de Create pour créer le contrôle et le lier à l'objet d' CComboBox .

Si vous souhaitez gérer des messages de notification de fenêtres envoyés par une zone de liste déroulante à son parent (généralement une classe dérivée d' CDialog), ajoutez une entrée de la table des messages et une fonction membre gestionnaire de messages à la classe parente pour chaque message.

Chaque entrée de la table des messages prend la forme suivante :

Notification**(id,memberFxn)**d'ON_

où id spécifie l'ID de fenêtre enfant du contrôle zone de liste déroulante envoyant la notification et memberFxn est le nom de la fonction membre parente que vous avez écrit pour traiter la notification.

Le prototype de fonction du parent est la suivante :

afx_msgvoidmemberFxn**(**);

L'ordre dans lequel certaines notifications sont envoyées ne peut pas être prévu.En particulier, une notification de CBN_SELCHANGE peut se produire soit avant ou après une notification de CBN_CLOSEUP .

Les entrées de la table des messages potentielles sont les suivantes :

  • ON_CBN_CLOSEUP (Windows 3.1 et ultérieure.) La zone de liste d'une zone de liste déroulante est fermée.Ce message de notification n'est pas envoyé pour une zone de liste déroulante qui a le style de CBS_SIMPLE .

  • ON_CBN_DBLCLK l'utilisateur double-clique sur une chaîne dans la zone de liste d'une zone de liste déroulante.Ce message de notification est envoyé uniquement pour une zone de liste déroulante avec le style de CBS_SIMPLE .Pour une zone de liste déroulante avec le style de CBS_DROPDOWN ou de CBS_DROPDOWNLIST , un double-clic ne peut pas se produire parce qu'un clic masque la zone de liste.

  • ON_CBN_DROPDOWN la zone de liste d'une zone de liste déroulante est sur le point de déroulante (être rendu visible).Ce message de notification peut se produire pour une zone de liste déroulante avec le style de CBS_DROPDOWN ou de CBS_DROPDOWNLIST .

  • ON_CBN_EDITCHANGE l'utilisateur a pris une action qui peut avoir modifié le texte dans la partie de contrôle d'édition d'une zone de liste déroulante.Contrairement au message de CBN_EDITUPDATE , ce message est envoyé après les mises à jour Windows l'écran.Il n'est pas envoyé si la zone de liste déroulante a le style de CBS_DROPDOWNLIST .

  • ON_CBN_EDITUPDATE la partie du contrôle d'édition d'une zone de liste déroulante est autour de le texte modifié par affichage.Ce message de notification est envoyé fois que le contrôle a mis en forme du texte mais avant qu'il affiche le texte.Il n'est pas envoyé si la zone de liste déroulante a le style de CBS_DROPDOWNLIST .

  • ON_CBN_ERRSPACE la zone de liste déroulante ne peut pas allouer suffisamment de mémoire pour accepter une demande spécifique.

  • ON_CBN_SELENDCANCEL (Windows 3.1 et ultérieure.) Indique la sélection de l'utilisateur doit être annulé.L'utilisateur clique sur un élément puis clique sur une fenêtre ou un contrôle différent pour masquer la zone de liste d'une zone de liste déroulante.Ce message de notification est envoyé avant le message de notification de CBN_CLOSEUP pour indiquer que la sélection de l'utilisateur doit être ignorée.Le message de notification de CBN_SELENDCANCEL ou de CBN_SELENDOK est envoyé même si le message de notification de CBN_CLOSEUP n'est pas envoyé (comme dans le cas d'une zone de liste déroulante avec le style de CBS_SIMPLE ).

  • ON_CBN_SELENDOK l'utilisateur sélectionne un élément puis appuie sur la touche ENTRÉE ou clique sur la touche de direction BAS pour masquer la zone de liste d'une zone de liste déroulante.Ce message de notification est envoyé avant le message de CBN_CLOSEUP pour indiquer que la sélection de l'utilisateur doit être considéré comme valide.Le message de notification de CBN_SELENDCANCEL ou de CBN_SELENDOK est envoyé même si le message de notification de CBN_CLOSEUP n'est pas envoyé (comme dans le cas d'une zone de liste déroulante avec le style de CBS_SIMPLE ).

  • ON_CBN_KILLFOCUS la zone de liste déroulante perd le focus d'entrée.

  • ON_CBN_SELCHANGE la sélection dans la zone de liste d'une zone de liste déroulante est sur le point d'être modifié suite à l'utilisateur clique sur dans la zone de liste ou la modification de la sélection à l'aide de les touches de direction.Lors de ce message, le texte du contrôle d'édition de la zone de liste déroulante peut être récupéré via un GetLBText ou d'une fonction similaire différente.GetWindowText ne peut pas être utilisée.

  • ON_CBN_SETFOCUS la zone de liste déroulante reçoit le focus d'entrée.

Si vous créez un objet d' CComboBox dans une boîte de dialogue (via une ressource de boîte de dialogue), l'objet d' CComboBox est automatiquement détruit lorsque l'utilisateur ferme la boîte de dialogue.

Si vous incluez un objet d' CComboBox dans un autre objet window, vous n'avez pas besoin de le détruire.Si vous créez l'objet d' CComboBox sur la pile, elle est perdue automatiquement.Si vous créez l'objet d' CComboBox sur le tas à l'aide de la fonction de nouveau , vous devez appeler supprimer sur l'objet pour le détruire lorsque la zone de liste déroulante windows est perdue.

Note si vous souhaitez gérer WM_KEYDOWN et des messages d' WM_CHAR , vous devez sous-classe la modification et les contrôles de zone de liste déroulante de la zone de liste déroulante, dériver des classes d' CEdit et d' CListBox, et ajouter des gestionnaires pour ces messages aux classes dérivées.Pour plus d'informations, consultez https://support.microsoft.com/default.aspx?scid=kb;en-us;Q174667 et CWnd::SubclassWindow.

Hiérarchie d'héritage

CObject

CCmdTarget

CWnd

CComboBox

Configuration requise

En-tête : afxwin.h

Voir aussi

Référence

CWnd, classe

Graphique de la hiérarchie

CWnd, classe

Classe de CButton

Classe de CEdit

Classe de CListBox

Classe de CScrollBar

Classe de CStatic

Classe de CDialog

Concepts

CTRLBARS exemple MFC