Remplir un combobox win32 api [Résolu]

Messages postés
120
Date d'inscription
samedi 3 mai 2008
Dernière intervention
18 juillet 2013
- - Dernière réponse : cs_ssefyou
Messages postés
120
Date d'inscription
samedi 3 mai 2008
Dernière intervention
18 juillet 2013
- 25 déc. 2011 à 19:17
Bonsoir ,

comment remplir un combobox sous winapi en c ?
j'ai cree un combo en utilisant la fonction createWindowEx()
mais je n'arrive pas à le remplir avec des chaines de caratères
j'ai utilisé la fonction SendMessage mais ça ne fonctionne pas
voilà mon code :


LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{

    switch (message)                  /* handle the messages */
    {
        case WM_CREATE:
            {

 //creation d'une label
 HWND  hlbl1=CreateWindowEx(0,"STATIC","Taille :",WS_CHILD| WS_VISIBLE ,15,20,50,20,hwnd,(HMENU)1,GetModuleHandle(NULL),NULL);

//creation de la zone de texte
HWND  hEdit=CreateWindowEx(WS_EX_CLIENTEDGE,
"EDIT","",WS_CHILD|WS_VISIBLE | ES_NUMBER,80,20,100,20,hwnd,(HMENU)2,GetModuleHandle(NULL),NULL);

//limiter le nbr des caracteres
SendMessage(hEdit,EM_SETLIMITTEXT,(WPARAM)6,0);

//creation d'une label
HWND  hlbl2=CreateWindowEx(0,"STATIC","Methode de Tri :",WS_CHILD| WS_VISIBLE ,230,20,120,20,hwnd,(HMENU)3,GetModuleHandle(NULL),NULL);

//creation du combobox
HWND hCombo = CreateWindowEx(WS_EX_CLIENTEDGE, "COMBOBOX",NULL, CBS_DROPDOWNLIST | WS_CHILD | CBS_SIMPLE | WS_VISIBLE,360, 20, 150, 20, hwnd, (HMENU)4,0,0);

// ajout des items au combo
SendMessage(hCombo,CB_ADDSTRING,0,(LPARAM)"azerty");
SendMessage(hCombo,CB_ADDSTRING,0,(LPARAM)"qwerty");



Merci d'avance
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
3
Merci
HWND hCombo = CreateWindowEx(WS_EX_CLIENTEDGE, "COMBOBOX", 0,
CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL | CBS_HASSTRINGS,
360, 20, 150, 120, hwnd, (HMENU)4,0,0);
SendMessage(hCombo, CB_ADDSTRING, 0,(LPARAM) "azerty");
SendMessage(hCombo, CB_ADDSTRING, 0,(LPARAM) "qwerty");
SendMessage(hCombo, CB_SETCURSEL, 0, 0);

Ne pas perdre de vue qu'une dialog affichée par DialogBoxParam() arrivera à l'écran énormément plus vite qu'avec une série de CreateWindowEx().

ciao...
BruNews, MVP VC++

Merci BruNews 3

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

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de BruNews
Messages postés
120
Date d'inscription
samedi 3 mai 2008
Dernière intervention
18 juillet 2013
0
Merci
Bonsoir,

Merci infiniment pour votre aide BruNews
le problème était au niveau de la largeur de mon combo

Merci
Commenter la réponse de cs_ssefyou

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.