Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pbm mfc & CComboBox

3 réponses
Avatar
Anis Refoufi
Bonjour , je creer une combobox dans mon dialogue puis je lui associe une
variable dans ma classe CDialog, je fais un appel à la méthode AddString
dans la fonction OnInitDialog()

Ca donne un truc du genre :

cb.AddString("Test");

Cela ne fonctionne pas !!!
pourtant en deboguant : on doit obtenir en retour un index si tout se passe
bien sur la position du string , j'ai bien ces index !!!!

Merci de vos lumières.

3 réponses

Avatar
Fabien LE LEZ
On Mon, 14 Jul 2003 20:58:43 +0200, "Anis Refoufi"
wrote:

pbm mfc & CComboBox
cb.AddString("Test");


A priori, le bon groupe pour parler de Windows est
fr.comp.os.ms-windows.programmation.

Toutefois, étant donné le problème et les quelques aperçus que j'ai eu
des spécifications délirantes des MFC, il y a des chances pour que la
fonction "AddString()" ne fasse pas de copie de la chaîne qu'on lui
passe. Ainsi, si tu écris :

void MaClasse::f()
{
char buf[]= "Hello World!";
cb.AddString (buf);
}

l'appel de AddString() fonctionne parfaitement, mais entre ce moment
et le moment où ton contrôle est effectivement affiché, on est sorti
de la fonction f(), et donc la variable "buf" n'existe plus.

Pour vérifier si c'est bien ça, essaie le code suivant :

void MaClasse::f()
{
static char buf[]= "Hello World!";
cb.AddString (buf);
}

Dans ce cas précis, la variable "buf" n'est pas détruite à la sortie
de la fonction.
Si ça ne marche toujours pas, ton problème n'est pas lié au C++ ; cf
fr.comp.os.ms-windows.programmation.
Si au contraire cette fois ça marche, ça signifie qu'il te faut
stocker toi-même les chaînes de caractères, par exemple sous la forme
d'un std::vector<std::string> comme membre de ta classe.

NB : pour passer un std::string à AddString(), il suffit de passer par
la fonction c_str() :

std::string chaine= ...;
cb.AddString (chaine.c_str());


--
Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/
et http://www.aminautes.org/forums/serveurs/tablefr.html
Archives : http://groups.google.com/advanced_group_search
http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html

Avatar
Anis Refoufi
j'ai trouvé le pbm c'est un bug de visual studio en fait il suffisait de
draguer une fenetre invisible dans l'ide de maniere a ce que le drop down
list soit plus grand que 1 pixel (taille de la hauteur par defaut non
modifiable par 1 setItemHeight par exemple)

Merci qd meme pour la réponse.
;)


"Anis Refoufi" a écrit dans le message de
news: beuugc$r6i$
Bonjour , je creer une combobox dans mon dialogue puis je lui associe une
variable dans ma classe CDialog, je fais un appel à la méthode AddString
dans la fonction OnInitDialog()

Ca donne un truc du genre :

cb.AddString("Test");

Cela ne fonctionne pas !!!
pourtant en deboguant : on doit obtenir en retour un index si tout se
passe

bien sur la position du string , j'ai bien ces index !!!!

Merci de vos lumières.






Avatar
Fabien LE LEZ
On Tue, 15 Jul 2003 19:13:35 +0200, "Anis Refoufi"
wrote:

j'ai trouvé le pbm c'est un bug de visual studio


Donc HS ici.


--
Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/
et http://www.aminautes.org/forums/serveurs/tablefr.html
Archives : http://groups.google.com/advanced_group_search
http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html