Remplir un combobox win32 api [Résolu]

cs_ssefyou 120 Messages postés samedi 3 mai 2008Date d'inscription 18 juillet 2013 Dernière intervention - 24 déc. 2011 à 23:09 - Dernière réponse : cs_ssefyou 120 Messages postés samedi 3 mai 2008Date d'inscription 18 juillet 2013 Dernière intervention
- 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
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 25 déc. 2011 à 10:01
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de BruNews
cs_ssefyou 120 Messages postés samedi 3 mai 2008Date d'inscription 18 juillet 2013 Dernière intervention - 25 déc. 2011 à 19:17
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.