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

freepouy18 49 Messages postés mercredi 20 avril 2005Date d'inscription 15 septembre 2005 Dernière intervention - 14 juin 2005 à 16:05 - Dernière réponse : freepouy18 49 Messages postés mercredi 20 avril 2005Date d'inscription 15 septembre 2005 Dernière intervention
- 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
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 14 juin 2005 à 16:09
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

Merci vecchio56 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 129 internautes ce mois-ci

Commenter la réponse de vecchio56
Meilleure réponse
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 15 juin 2005 à 10:54
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>

Merci vecchio56 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 129 internautes ce mois-ci

Commenter la réponse de vecchio56
freepouy18 49 Messages postés mercredi 20 avril 2005Date d'inscription 15 septembre 2005 Dernière intervention - 14 juin 2005 à 16:15
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
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 14 juin 2005 à 16:17
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
ricky78 126 Messages postés jeudi 5 juin 2003Date d'inscription 11 juillet 2006 Dernière intervention - 14 juin 2005 à 16:35
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
freepouy18 49 Messages postés mercredi 20 avril 2005Date d'inscription 15 septembre 2005 Dernière intervention - 14 juin 2005 à 16:35
0
Merci
C'est une Combo Box.
Commenter la réponse de freepouy18
freepouy18 49 Messages postés mercredi 20 avril 2005Date d'inscription 15 septembre 2005 Dernière intervention - 14 juin 2005 à 16:45
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
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 14 juin 2005 à 17:31
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
cs_Joky 1791 Messages postés lundi 22 novembre 2004Date d'inscription 31 janvier 2009 Dernière intervention - 14 juin 2005 à 17:34
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
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 14 juin 2005 à 17:47
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
freepouy18 49 Messages postés mercredi 20 avril 2005Date d'inscription 15 septembre 2005 Dernière intervention - 15 juin 2005 à 10:34
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
freepouy18 49 Messages postés mercredi 20 avril 2005Date d'inscription 15 septembre 2005 Dernière intervention - 15 juin 2005 à 11:23
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.