Comment obtenir des valeurs d’affichage de combo-box à l’aide du champ Données?

J’ai défini les données de la liste déroulante sur “première; deuxième; troisième” dans l’éditeur de ressources, mais lorsque je comstack le programme, la zone de liste déroulante est totalement vide, je n’y vois aucun élément.

De plus, comment définir quel élément est sélectionné par défaut? Et comment puis-je modifier l’élément actuellement sélectionné par programme?

Consultez ce didacticiel sur les boîtes de dialog Win32: Introduction aux boîtes à options

Si vous utilisez la classe MFC CComboBox, vous devez utiliser les méthodes AddSsortingng() ou InsertSsortingng() pour append des éléments dans la liste déroulante.

La réponse se trouve dans cet article: http://codeguru.earthweb.com/cpp/com-tech/atl/atl/print.php/c3599

La ressource DLGINIT ajoutée par l’éditeur de ressources est une liste de messages à transmettre aux contrôles enfants juste après la création de la boîte de dialog. MFC a le code pour le faire automatiquement dans la méthode ExecuteDlgInit , donc les solutions basées sur MFC “fonctionneront”; tout le monde devra fournir son propre code pour l’initialisation. Il apparaît également que les messages insérés par l’éditeur de boîte de dialog sont basés sur l’API Windows 16 bits et nécessitent une traduction pour Windows 32/64 bits.

Je suggérerais d’ignorer les données d’initialisation fournies par l’éditeur de dialog et d’utiliser le message CB_ADDSTRING pour placer les chaînes initiales.

Quelques autres bons conseils ici: http://www.flounder.com/combobox.htm

Pour définir la valeur, vous pouvez utiliser la méthode AddSsortingng () mycombobox.AddSsortingng (“first”); mycombobox.AddSsortingng (“second”); mycombobox.AddSsortingng (“troisième”); Pour définir l’index, vous pouvez utiliser la méthode SetCurSel () et définir la valeur par défaut “first”. mycombobox.SetCurSel (0);

Dans le champ “Données”, entrez les valeurs séparées par un point-virgule ; comme suit:

 line1;line2;line3 

Lors de l’initialisation, chacune de ces valeurs apparaîtra dans une ligne.

Cela fonctionne dans VS 2015, et je pense aussi loin que VS 2008