Récupérer valeur d'une ComboBox avec GetCurSel() et GetLBText() (ERREUR C2228) [Résolu]

Messages postés
49
Date d'inscription
mercredi 20 avril 2005
Dernière intervention
15 septembre 2005
- - Dernière réponse : freepouy18
Messages postés
49
Date d'inscription
mercredi 20 avril 2005
Dernière intervention
15 septembre 2005
- 15 juin 2005 à 11:23
Bonjour a tous, j'ai un problème avec une combobox, je desire récupérer la valeur sélectionnée pour faire un traitement particulier, voici le code :

#include
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string>
#include <fstream>
#include
#include <cstdlib>

void MaFonction()
{
CString nom_client ;
int nIndex = Combo_Client.GetCurSel(); //erreur1


if(nIndex!=CB_ERR)
Combo_Client.GetLBText(nIndex,nom_client); //erreur2
}

erreur1 : error C2228: left of '.GetCurSel' must have class/struct/union type

erreur2: error C2228: left of '.GetLBText' must have class/struct/union type

Si qqun pouvais m'aider, Merci d'avance!!!
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
Messages postés
6539
Date d'inscription
lundi 16 décembre 2002
Dernière intervention
22 août 2010
16
3
Merci
Je suis en train de me demander si tu utilises les MFC ou pas. Quel est
le type de Combo_Client? Si c'est un HWND, ce n'est pas comme ca qu'il
faut faire. Il faut utiliser les message CB_GETCURSEL, CB_GETITEMDATA

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 87 internautes nous ont dit merci ce mois-ci

Commenter la réponse de vecchio56
Messages postés
6539
Date d'inscription
lundi 16 décembre 2002
Dernière intervention
22 août 2010
16
3
Merci
Les MFC je peux pas trop t'expliquer. J'en ai fait un peu mais j'ai tout oublié

Pour récupérer le texte, c'est ma faut, je crois que je t'ai donné le mauvais message, je crois que c'est plutot CB_GETLBTEXT:



char nom_client[MAX_TAILLE];



//ici je récupère le bon index

int nIndex = SendDlgItemMessage(Combo_Client,CB_GETCURSEL,0,0);

if(nIndex!=CB_ERR)

SendDlgItemMessage(Combo_Client,CB_GETLBTEXT,nIndex,(LPARAM)nom_client);



Si tu fais comme ca tu n'utilise pas les MFC, mais c'est aussi bien comme ca, si tu peux t'en passer autant le faire

<!-- @ --><link href="../../../../css/inetsdk.css" type="text/css" rel="stylesheet"><!-- @ --><style type="text/css">
PRE.clsCode { font-size:110%; }
PRE.clsSyntax { font-size:100%; }
TD DIV.clsBeta { display:none;}

A:link { color:#0000ff; text-decoration:underline;}
A:visited { color:#0000ff; text-decoration:underline;}
A:hover { color:#3366ff; text-decoration:underline;}
MSHelp\:link {
color:#0000ff;
text-decoration:underline;
cursor:hand;
hoverColor:#3366ff;
filterString: ;}
</style><link href="ms-help://Hx/HxRuntime/HxLink.css" type="text/css" rel="stylesheet"><XML id="_topicdata" pagetype="winmsg" proj="platsdk" name="CB_GETLBTEXT" pubpath="/platform/commctls/comboboxes/comboboxreference/comboboxmessages/cb_getlbtext.htm"><!-- topic data --><root></root></XML><xml xmlns:mshelp="http://msdn.microsoft.com/mshelp"></xml>

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 87 internautes nous ont dit merci ce mois-ci

Commenter la réponse de vecchio56
Messages postés
49
Date d'inscription
mercredi 20 avril 2005
Dernière intervention
15 septembre 2005
0
Merci
Oui j'uitilise effectivement les MFC, s'il faut utiliser une autre maniere, je ne sais pas laquelle, alors peux-tu me donner un exemple suceptible de fonctionner avec les MFC!!!
Commenter la réponse de freepouy18
Messages postés
6539
Date d'inscription
lundi 16 décembre 2002
Dernière intervention
22 août 2010
16
0
Merci
Je t'ai demandé le type de Combo_Client...

A priori avec les MFC c'est bien une notation pointée qu'on utilise
Commenter la réponse de vecchio56
Messages postés
126
Date d'inscription
jeudi 5 juin 2003
Dernière intervention
11 juillet 2006
0
Merci
si tu as definit ton combo avec class wizzard - add variables - et que ton combo est definit en control tu utilise le

int nIndex = Combo_Client.GetCurSel();

si tu as definit ton combo dans ton code avec un getdlgitem(IDC_COMBO_mycombo) essaye plutot ça

int nIndex = Combo_Client->GetCurSel();

cordialement

TOCHE
Commenter la réponse de ricky78
Messages postés
49
Date d'inscription
mercredi 20 avril 2005
Dernière intervention
15 septembre 2005
0
Merci
C'est une Combo Box.
Commenter la réponse de freepouy18
Messages postés
49
Date d'inscription
mercredi 20 avril 2005
Dernière intervention
15 septembre 2005
0
Merci
C'est bon j'ai trouvé, il fallait bien utiliser les messages, voici le code :

void MaFonction()
{
CString nom_client ;

int nIndex = SendDlgItemMessage(Combo_Client,CB_GETCURSEL,0,0);
if(nIndex!=CB_ERR)
nom_client=SendDlgItemMessage(Combo_Client,CB_GETITEMDATA,nIndex,0);
}

Merci a tous,
Commenter la réponse de freepouy18
Messages postés
6539
Date d'inscription
lundi 16 décembre 2002
Dernière intervention
22 août 2010
16
0
Merci
Tu sais qu'avec les MFC tu peu utiliser une classe pour les ComboBox
(CComboBox je pense). Comme tu utilises les MFC, autant aller jusqu'a
bout!
Commenter la réponse de vecchio56
Messages postés
1791
Date d'inscription
lundi 22 novembre 2004
Dernière intervention
31 janvier 2009
3
0
Merci
#include
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string>
#include <fstream>
#include

C'est étrange les MFC lol
Enfin j'dis rien j'suis pas mieux :)


void Aurevoir( void ); //Bonne journée
Commenter la réponse de cs_Joky
Messages postés
6539
Date d'inscription
lundi 16 décembre 2002
Dernière intervention
22 août 2010
16
0
Merci
Ca c'est pas beau déja, et ca n'a rien a voir avec les MFC, c'est juste
un mélange de C et de STL. Je me demande comment il fait pour utiliser
CString avec ca...
Commenter la réponse de vecchio56
Messages postés
49
Date d'inscription
mercredi 20 avril 2005
Dernière intervention
15 septembre 2005
0
Merci
Ecoutez, j'espère que vous acceptez aussi les débutants dans ce forum parce qu'en tous cas, ça n'a pas l'air. Je suis là pour apprendre alors est-ce que qqun peut m'expliquer le fonctionnement des MFC en qqes mots et surtout pourquoi cette histoire de combo n'est pas cohérente avec ce fonctionnement?

Joky je n'est pas compris ton truc sur les include!!!

De plus je n'arrive toujours pas à récupérer la valeur du combo, nom_client contient toujours une chaîne vide, je vous redonne le code :

CString nom_client ;

//ici je récupère le bon index
int nIndex = SendDlgItemMessage(Combo_Client,CB_GETCURSEL,0,0);


if(nIndex!=CB_ERR)
nom_client=SendDlgItemMessage(Combo_Client,CB_GETITEMDATA,nIndex,0);

Merci!!!
Commenter la réponse de freepouy18
Messages postés
49
Date d'inscription
mercredi 20 avril 2005
Dernière intervention
15 septembre 2005
0
Merci
Merci vecchio56, c'est bien ça et il faut surtout utiliser "char nom_client[MAX_TAILLE];" et non "CString nom_client" sinon ça ne marche pas.

Pour ce qui est des MFC, ce n'est pas grave, en espérant quand même que qqun répondra à ma question.

Merci.
Commenter la réponse de freepouy18

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.