Lancez Microsoft Visual Studio. Générer une application en fonction de dialogue pour ce projet en cliquant sur Fichier gt; Nouveau gt; Projets (onglet), et la sélection "MFC AppWizard (exe)." Type "MyComboBox" sous "Nom du projet." Appuyez sur OK, sélectionnez "En fonction de dialogue" et cliquez sur Terminer.
Créer une zone de liste déroulante et de modifier ses propriétés. Cliquez sur l'onglet Ressources sur le côté gauche de l'espace de travail. Développez le dossier boîte de dialogue et sélectionnez IDD_MYCOMBOBOX_DIALOG. Cliquez sur l'icône de zone de liste déroulante de la boîte à outils sur le côté droit et le mettre sur la boîte de dialogue. Redimensionner le menu déroulant étendre de la boîte de combo en cliquant sur la flèche et glisser vers le bas du rectangle. Puis à droite; cliquez sur, sélectionnez Propriétés, cliquez sur l'onglet Styles et, sous Type, sélectionnez Simple. Fermez la boîte Propriétés Combo.
Ajouter des éléments à la zone de liste déroulante. Vous pouvez le faire de deux façons. Pour les ajouter au moment du design, droit, cliquez sur la liste déroulante, sélectionnez Propriétés, cliquez sur l'onglet Données et entrez les articles. Pour accéder à l'élément suivant, appuyez sur Ctrl + Entrée. Pour les ajouter à l'exécution, appelez la CComboBox :: AddString () pour ajouter des éléments à la fin ou CComboBox :: InsertString () pour insérer des éléments dans un emplacement spécifique. Les articles sont de type lpszString.
Changer la largeur de la zone de liste déroulante dynamiquement. Vous pouvez afficher un objet pleinement, peu importe combien de temps il est, grâce à la fonction de membre CComboBox :: SetDroppedWidth (). Il prend en paramètre la largeur de la chaîne en pixels.
Effectuer d'autres fonctions communes. Sélectionnez un élément à l'exécution en utilisant CComboBox :: SetCurSel (). Il accepte en paramètre un index entier. Trouver l'indice de l'élément sélectionné avec CComboBox :: GetCurSel (). Récupérer des données en utilisant CComboBox :: GetItemData (). Déterminer l'élément compter travers CComboBox :: GetCount ().
Éliminer les articles à partir d'une boîte de MFC de combo. Si la chaîne est connu, vous pouvez utiliser CComboBox :: FindString () pour déterminer l'indice et ensuite utiliser CComboBox :: deletestring (). CComboBox :: Clear () supprime la sélection actuelle le cas échéant, tout en CComboBox :: Cut () supprime la sélection actuelle et la place sur le presse-papiers.
Comprendre les messages carte messages de notification qu'une zone de liste déroulante peut envoyer. Lorsque la zone de liste de la liste déroulante est fermée, par exemple, ON_CBN_CLOSEUP est envoyé. Lorsque la boîte combo perd son focus d'entrée à cause d'un clic de souris en dehors de ses frontières, il envoie ON_CBN_KILLFOCUS. Il ya un message-carte pour chaque changement d'état-possible qu'une zone de liste déroulante peut subir.