IH2MCBETA
Messages postés16Date d'inscriptionjeudi 1 mars 2007StatutMembreDernière intervention 4 mai 2007
-
23 avril 2007 à 10:32
kmazri
Messages postés3Date d'inscriptionjeudi 12 mars 2009StatutMembreDernière intervention 3 décembre 2009
-
3 déc. 2009 à 17:26
Bonjour, je désir remplir une combo box (listes déroulantes) avec une variable que j'ai créé.
Quand dans une edit control je met 6 je veu que dans ma combo box il y est les chiffres de 1 à 6 selectionnables .
En fait je veux que ma variable ajoutée à l'edit box remplisse aussi la liste déroulante .
Merci d'avance .
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013 23 avril 2007 à 11:36
Voici le résonnement :
1- Tu recuperes le contenu de ton edit : GetDlgItemText(....)
2- Tuu converties en entier : i = atoi(...)
3- Tu boucles de 1 à i et, et à chaque cycle de boucle tu envoies te le message CB_ADDSTRING a l'aide de l'API SendMessage(...). Tu convertiras au préalable la valeur de i en char * a l'aide de itoa(...).
Loki6
Messages postés286Date d'inscriptiondimanche 27 novembre 2005StatutMembreDernière intervention27 décembre 20092 23 avril 2007 à 17:37
tu peux sinon ajouter une variable membre liée à ton edit box de type unsigned int (pas besoin des négatifs et sinon attentions aux tests)
et ajouter une variable membre de type CComboBox, Control.
ensuite tu crées une fonction onChange on un truc comme ca qui est appelée à chaque fois que tu modifie ton editbox.
dans cette fonction tu commences par vider ta combobox avec une fonction reset qqchse je crois. ensuite tu fais une boucle qui part de 1 à la valeur de ta variable unsigned int et tu fais m_cbMyComboVar.AddString(*la correspondance en CString de ton int*);
et c'est tout bon. ne pas oublier les UpdateData(); si ca ne récup pas la valeur de l'editbox.
IH2MCBETA
Messages postés16Date d'inscriptionjeudi 1 mars 2007StatutMembreDernière intervention 4 mai 2007 24 avril 2007 à 16:42
this
->UpdateData();
this
->GetDlgItemInt(m_nbrunDlg);
for
(
int
i=0;i < pmyComboBox->GetCount();i++){
if
(pmyComboBox->GetItemData(i) == 0){
pmyComboBox->SendMessage(CB_ADDSTRING,NULL,NULL);
}
}
}
avec cette boucle dans le gestionnaire d'évenement de mon edit je veu retourner l valeur de mon edit dans le combobox
ex: 1 dans l'édit = 1 et 2 et 3 et 4 et 5 et 6 dans mon combo
Loki6
Messages postés286Date d'inscriptiondimanche 27 novembre 2005StatutMembreDernière intervention27 décembre 20092 24 avril 2007 à 17:07
tu ne voulais pas avoir autant de choix dans ta combobox que c que tu avais spécifié dans ton edit ?
dans ce cas, il faut mettre à jour le Count de ta combo avant tout. mais je suis pas sur que ca soit une bonne technique.
j'ai fais un truc équivalent dans un projet et j'ai fais comme ceci :
- tu récupères le nombre entré dans l'edit.
- tu vires tout ce qu'il y avait au préalable dans la combobox avec ResetContent();
- tu fais une boucle for pour ajouter les choix de la combobox avec : AddString();