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 !!!!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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 :
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 :
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() :
-- 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
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 :
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 :
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() :
--
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
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 :
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 :
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() :
-- 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
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.
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" <anis.refoufi@libertysurf.fr> a écrit dans le message de
news: beuugc$r6i$1@news.tiscali.fr...
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 !!!!
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.
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
--
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
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