Récupérer valeur combobox (liste déroulante) [Résolu]

lolorenzeb 71 Messages postés lundi 24 mai 2004Date d'inscription 13 septembre 2006 Dernière intervention - 26 avril 2006 à 21:38 - Dernière réponse : lolorenzeb 71 Messages postés lundi 24 mai 2004Date d'inscription 13 septembre 2006 Dernière intervention
- 27 avril 2006 à 00:23
Salut à tous,

Voila je réalise une appli graphique avec les API et j'utilise un combobox.

Mon problème est que j'aimerai récupérer la valeur sélectionner du combobox. J'ai beau chercher partout sur le net je ne trouve pas. Je vous remercie d'avance pour vos réponses.
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 26 avril 2006 à 23:57
3
Merci
Mias c'est idem, on a le handle du control dans lParam lors d'un event WM_COMMAND mais si tu enregistres le HWND du controle avant et que tu l'utilises, ça ne change rien à l'affaire.

ciao...
BruNews, MVP VC++

Merci BruNews 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de BruNews
Meilleure réponse
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 27 avril 2006 à 00:16
3
Merci
hCombo est certainement invalide.

ciao...
BruNews, MVP VC++

Merci BruNews 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de BruNews
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 26 avril 2006 à 22:06
0
Merci
CB_GETLBTEXT
Vois qu'un GetWindowText fonctionne aussi très bien avec un combobox.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
lolorenzeb 71 Messages postés lundi 24 mai 2004Date d'inscription 13 septembre 2006 Dernière intervention - 26 avril 2006 à 22:59
0
Merci
Je n'arrives pas a faire fonctionner ta solution :(

voila ce que je fais:

                int LenghtTexte = GetWindowTextLength(hCombo);
                char* pCombo = new char[LenghtTexte + 1];
                GetWindowText(hCombo, pCombo, LenghtTexte + 1);
                MessageBox (NULL, pCombo, "Serveur", MB_OK);

Je ne vois pas où utiliser ton

CB_GETLBTEXT ???
Désolé je suis un noob en API ...
Commenter la réponse de lolorenzeb
lolorenzeb 71 Messages postés lundi 24 mai 2004Date d'inscription 13 septembre 2006 Dernière intervention - 26 avril 2006 à 23:01
0
Merci
Ah oui petite précision, le MessageBox m'affiche une boite de dialogue vide.
Commenter la réponse de lolorenzeb
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 26 avril 2006 à 23:23
0
Merci
C'est CB_GETLBTEXT ou GetWindowText mais pas les 2.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
lolorenzeb 71 Messages postés lundi 24 mai 2004Date d'inscription 13 septembre 2006 Dernière intervention - 26 avril 2006 à 23:30
0
Merci
oui mais comme je l'ai précisé le résultat que j'obtiens est soit 0 ou une chaine vide :(

Ca te dérangerai de me donner un petit exemple s'il te plait je t'en serait très reconnaissant. J'ai beau essayer de plusieurs facon différentes je n'y arrive pas...
Commenter la réponse de lolorenzeb
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 26 avril 2006 à 23:30
0
Merci
Regarde ici exemple que GetWindowText va bon:
http://www.cppfrance.com/code.aspx?id=16638

Dans AppDlgProc:
case WM_COMMAND:
switch(wParam) {case 0x103E9: // CBN_SELCHANGE 1, IDCMB_DRIVES 1001
GetWindowText((HWND) lParam, szdest, 4);

et ça récupère le texte nickel.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 26 avril 2006 à 23:32
0
Merci
Il aurait d'abord falu voir ce que vaut GetWindowTextLength, aucune idée sur un combo.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
lolorenzeb 71 Messages postés lundi 24 mai 2004Date d'inscription 13 septembre 2006 Dernière intervention - 26 avril 2006 à 23:47
0
Merci
Ok je te remercie j'y vois deja plus clair. Mais le truc que je n'avais pas préciser c'est que je voulais récupérer le contenu du combobox lors d'un clique sur un bouton OK. Mais avec ce que tu m'as donné je pense que je vais pouvoir m'en sortir en enregistrant le contenu du combo lors d'un clique sur celui-ci. Je te tiens au courant.
Commenter la réponse de lolorenzeb
lolorenzeb 71 Messages postés lundi 24 mai 2004Date d'inscription 13 septembre 2006 Dernière intervention - 27 avril 2006 à 00:09
0
Merci
Bah oui mais le truc c'est qu'il m'affiche OK avec ta solution c'est bizarre. Je te met mon bout de code. (2 solutions)

-->1ere solution:

            if ((HWND) lParam == hBoutonOk){
                char texte[10];
                GetWindowText((HWND) lParam, texte, 4);
                MessageBox (NULL, texte, "Serveur", MB_OK); //affiche OK
            }

-->2eme solution:

            if ((HWND) lParam == hBoutonOk){

                char texte[10];

                GetWindowText(hCombo, texte, 4);

                MessageBox (NULL, texte, "Serveur", MB_OK); //n'affiche rien

            }

Désolé si j'insiste mais je suis vraiment noob en API et je te remercie encore
Commenter la réponse de lolorenzeb
lolorenzeb 71 Messages postés lundi 24 mai 2004Date d'inscription 13 septembre 2006 Dernière intervention - 27 avril 2006 à 00:23
0
Merci
Tu as raison c'est mon combo qui était mal déclarer. Je l'avais créer dans le WinMain et là je l'ai mis dans le cas WM_CREATE de WndProc et ca fonctionne maintenant. Merci à toi.
Commenter la réponse de lolorenzeb

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.