Combo box api win 32 [Résolu]

Signaler
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
29 juin 2009
-
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
-
Bonjour, je tente de faire fonctionner une combox mais je n'y parviens pas...
Voici comment je procède :
j'ai une variable globale UINT Jour
j'initialise Jour = ID_J1 (correspond au premier jour)
ensuite dans la fonction de ma boite de dialogue
case WM_INITDIALOG:
SendDlgItemMessage(hdlg, IDC_CJOUR, CB_ADDSTRING, 0, (LONG)"1");
SendDlgItemMessage(hdlg, IDC_CJOUR, CB_ADDSTRING, 0, (LONG)"2");
SendDlgItemMessage(hdlg, IDC_CJOUR, CB_ADDSTRING, 0, (LONG)"3");
SendDlgItemMessage(hdlg, IDC_CJOUR, CB_ADDSTRING, 0, (LONG)"4");
SendDlgItemMessage(hdlg, IDC_CJOUR, CB_ADDSTRING, 0, (LONG)"5");
SendDlgItemMessage(hdlg, IDC_CJOUR, CB_ADDSTRING, 0, (LONG)"6");
SendDlgItemMessage(hdlg, IDC_CJOUR, CB_SETCURSEL, Jour, 0);



qu'est ce que j'ai oublié de faire -> sachant qu'en fait il ne m'affiche que la première valeur?

merci de votre aide

18 réponses

Messages postés
792
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
12 juillet 2019
8
oui transforme 12 en 120 et tu verras ta liste. 12 pixels doit être la hauter de la fonte donc d'une ligne

louis14
Messages postés
792
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
12 juillet 2019
8
ce que j'ai remarqué, c'est qu'en mettant une hauteur plus grande que nécessaire, il y a en premier lieu une adaptation de la hauteru , car le paramètre est la hauteur maximale et non la hauteur définitive si la liste est plus petite

louis14
Messages postés
792
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
12 juillet 2019
8
je ne vois de suite, mais lorsque je programme sous VC++, dans l'éditeur de la boite de dialogue, je dimensionne la combobox mais aussi la dropdown window ( si je ne le fait pas, je ne vois que la première donnée comme toi). je ne sais pas s'il y a un message pour cela, mais je pense qu'il voir de ce côté là. je viens de chercher le message, il s'agit de CB_ SETDROPPEDWIDTH .

Bonne conitnuation
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
29 juin 2009
4
Oui c bon çà je l'ai configuré aussi
quand j'ai créer ma boite dialogue j'ai choisi l'option DROPDOWN
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
29 juin 2009
4
étant donner que je n'arrive pas à ajouter mon code source si tu vex je te le passe par mail
Messages postés
792
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
12 juillet 2019
8
il n'y a pas que l'option dropdown mais il faut envoyer le message pour donner la dimension max de la fenêtre dropdown. Fais une recherche sur internet  pour voir le paramètre à passer.

louis14
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
29 juin 2009
4
http://chgi.developpez.com/windows/combobox/
Voilà le lien dont je me sert pour tenter d'élaborer ma combox et je ne vois aps de set..
Messages postés
792
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
12 juillet 2019
8
je viens de modifier une combobox dans vc++  et j'ai édité le fichier RC. dans les dimensions de la combobox c'est le dernier paramètre qui conditionne la hauteur de la dropdown window.
CB_COMBOBOX_XXX,64,28,95,40.....=> ici 40 est la hauteur  donc modifie ce paramètre

louis14
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
29 juin 2009
4
Voilà ce que j'ai :
COMBOBOX IDC_CJOUR,85,34,41,12,CBS_DROPDOWN | CBS_SORT |
WS_VSCROLL | WS_TABSTOP
Donc si je comprend il faut que je change le 12
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
29 juin 2009
4
merci beaucoup de ton temps louis 14


bonne journée et bonne prog
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
29 juin 2009
4
a oui mais si je veux quelle soit à une taille = à celle de mon tableau dynamique cette solution ne fonctionne plus
Messages postés
792
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
12 juillet 2019
8
il faut se fixer une limite sinon tu vas dépasser ton écran. Si le tableau est assez petit, compte 12 pour un élément et multiplie par le nombre d'éléments et fixe la taille par le message CB_SETDROPDOWNWIDTH

Bonne journée

louis14
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
Salut,

CB_SETDROPDOWNWIDTH c'est pas pour la largeur ça et non la hauteur ???

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
Messages postés
792
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
12 juillet 2019
8
fais une recherche sur internet(MSDN)  et tu verras .

louis14
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
J'ai beau cherché mais je trouve pas sur la msdn !
Avec google, j'ai juste trouvé un sujet d'un forum qui confirme ce que je pensais !
En plus width en anglais ça signifie largeur ! Ca veut tout dire.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
29 juin 2009
4
pas de panique je vais d'abord tenter de changer le 12 et je verrai bien mais l'instant je peux pas tester

++ et merci encore
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
29 juin 2009
4
ok je vais faire çà
merci encore
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
C'est exactement ça louis14 !
Pour augmenter la taille de la liste à l'affichage, il faut augmenter la hauteur de ta combobox à la création directement (c'est plus simple).

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"