begin process at 2010 02 10 00:41:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

faire fonctionner une list box


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

faire fonctionner une list box

lundi 21 octobre 2002 à 20:08:32 | faire fonctionner une list box

lolman27

c tout con ms jarive pas a faire fonctionner une list box
jarive pa a utiliser la fonction sendmessage
quelqun pourrai me faire un code pour exemple svp
qui rajoute des element ds la list en retire...
merci davance
mercredi 23 octobre 2002 à 14:19:44 | Re : faire fonctionner une list box

llo

salut,
pas compliqué... voilà un exemple tout bête:

char szTmp[50];
UINT i;
RECT rc;
GetClientRect( hwnd, &rc );
hwndConn = CreateWindow( "LISTBOX",
"Connections",
WS_CHILD | WS_VISIBLE | WS_HSCROLL |
WS_VSCROLL | LBS_USETABSTOPS | LBS_NOINTEGRALHEIGHT | LBS_SORT,
0,
0,
rc.right,
rc.bottom,
hwnd,
(HMENU) IDL_CONN,
lpCreateStruct->hInstance,
NULL );


// ajout de 3 items
SendMessage(hwndConn, LB_ADDSTRING, (WPARAM) 0, (LPARAM) (LPTSTR) "item1") ;
SendMessage(hwndConn, LB_ADDSTRING, (WPARAM) 0, (LPARAM) (LPTSTR) "item2") ;
SendMessage(hwndConn, LB_ADDSTRING, (WPARAM) 0, (LPARAM) (LPTSTR) "item3") ;

// insertion d'un item en seconde position
wsprintf (szTmp, "item inséré", 1);
SendMessage (hwndConn, LB_INSERTSTRING, 1, (DWORD)(LPSTR)szTmp);

// sélection du second item
SendMessage(hwndConn, LB_SETCURSEL, (WPARAM) 2, (LPARAM) 0 ) ;

// récupération de la données associées par défaut à l'item d'indice 1 (2nde position)
i = SendMessage(hwndConn, LB_GETITEMDATA, (WPARAM)1, (LPARAM)0);

// affichae => valeur initiale de 0
sprintf(szTmp, "item %ld", i);
MessageBox(hwnd, (LPSTR)szTmp, "CB MSG", MB_OK);

// affectation d'une numérique 50
SendMessage (hwndConn, LB_SETITEMDATA, 1, (DWORD)50);

// récupération de la valeur numérique
i = SendMessage(hwndConn, LB_GETITEMDATA, (WPARAM)1, (LPARAM)0);
sprintf(szTmp, "item %ld", i);
MessageBox(hwnd, (LPSTR)szTmp, "CB MSG", MB_OK);


// affectation d'une chaîne de caractères
SendMessage (hwndConn, LB_SETITEMDATA, 2, (DWORD)(LPSTR)"toto");

// récupération de cette chaîne
MessageBox(hwnd, (LPSTR)(DWORD)SendMessage(hwndConn, LB_GETITEMDATA, (WPARAM)2, (LPARAM)0), "CB MSG", MB_OK);

// récupération de la sélection courante
index = SendMessage( hwndConn, LB_GETCURSEL,(WPARAM) 0, (LPARAM) 0 );


voilà... si tu veux + d'infos n'hésite pas!


shuss
l'lo


-------------------------------
Réponse au message :
-------------------------------

c tout con ms jarive pas a faire fonctionner une list box
jarive pa a utiliser la fonction sendmessage
quelqun pourrai me faire un code pour exemple svp
qui rajoute des element ds la list en retire...
merci davance
vendredi 25 octobre 2002 à 00:31:19 | Re : faire fonctionner une list box

lolman27

Salut
Merci pour ta reponse
Ca ne fonctionne pas cher moi jai comme erreur la fonction sendmessage ne comporte pas 4 parametre
en effet kan je regarde les parametre de la fonction sendmessage il ni a ke 3 donne rekise:(UINT,lparam,wparam) un truc comme ca je croi
j ai pas msdn donc chui aller voir sur microsoft
et la il a 4 parametre pour sendmessage je compren pas vu que g bien visual c++ 6
porquoi c different cher moi chai pa....



-------------------------------
Réponse au message :
-------------------------------

salut,
pas compliqué... voilà un exemple tout bête:

char szTmp[50];
UINT i;
RECT rc;
GetClientRect( hwnd, &rc );
hwndConn = CreateWindow( "LISTBOX",
"Connections",
WS_CHILD | WS_VISIBLE | WS_HSCROLL |
WS_VSCROLL | LBS_USETABSTOPS | LBS_NOINTEGRALHEIGHT | LBS_SORT,
0,
0,
rc.right,
rc.bottom,
hwnd,
(HMENU) IDL_CONN,
lpCreateStruct->hInstance,
NULL );


// ajout de 3 items
SendMessage(hwndConn, LB_ADDSTRING, (WPARAM) 0, (LPARAM) (LPTSTR) "item1") ;
SendMessage(hwndConn, LB_ADDSTRING, (WPARAM) 0, (LPARAM) (LPTSTR) "item2") ;
SendMessage(hwndConn, LB_ADDSTRING, (WPARAM) 0, (LPARAM) (LPTSTR) "item3") ;

// insertion d'un item en seconde position
wsprintf (szTmp, "item inséré", 1);
SendMessage (hwndConn, LB_INSERTSTRING, 1, (DWORD)(LPSTR)szTmp);

// sélection du second item
SendMessage(hwndConn, LB_SETCURSEL, (WPARAM) 2, (LPARAM) 0 ) ;

// récupération de la données associées par défaut à l'item d'indice 1 (2nde position)
i = SendMessage(hwndConn, LB_GETITEMDATA, (WPARAM)1, (LPARAM)0);

// affichae => valeur initiale de 0
sprintf(szTmp, "item %ld", i);
MessageBox(hwnd, (LPSTR)szTmp, "CB MSG", MB_OK);

// affectation d'une numérique 50
SendMessage (hwndConn, LB_SETITEMDATA, 1, (DWORD)50);

// récupération de la valeur numérique
i = SendMessage(hwndConn, LB_GETITEMDATA, (WPARAM)1, (LPARAM)0);
sprintf(szTmp, "item %ld", i);
MessageBox(hwnd, (LPSTR)szTmp, "CB MSG", MB_OK);


// affectation d'une chaîne de caractères
SendMessage (hwndConn, LB_SETITEMDATA, 2, (DWORD)(LPSTR)"toto");

// récupération de cette chaîne
MessageBox(hwnd, (LPSTR)(DWORD)SendMessage(hwndConn, LB_GETITEMDATA, (WPARAM)2, (LPARAM)0), "CB MSG", MB_OK);

// récupération de la sélection courante
index = SendMessage( hwndConn, LB_GETCURSEL,(WPARAM) 0, (LPARAM) 0 );


voilà... si tu veux + d'infos n'hésite pas!


shuss
l'lo


-------------------------------
Réponse au message :
-------------------------------

c tout con ms jarive pas a faire fonctionner une list box
jarive pa a utiliser la fonction sendmessage
quelqun pourrai me faire un code pour exemple svp
qui rajoute des element ds la list en retire...
merci davance

vendredi 25 octobre 2002 à 09:29:59 | Re : faire fonctionner une list box

llo

salut,
Si tu travaille avec les MFC alors les sendmessage ne nécessite que 3 paramètres sachant que le handle est implicite par rapport à la classe dans laquelle tu utilise cette fonction.... Le pb est que dans ton cas, le hwnd implicite doit être celui de la fenêtre et non de la liste.
Pour outrepasser cela, tu dois préfixer la fonction par ==> "::"

ex ==> "::SendMessage(HWND, UINT, WPARAM, LPARAM)

Dans ce cas, tu passes le HWND de la liste...
voilà
shuss

l'lo


-------------------------------
Réponse au message :
-------------------------------

Salut
Merci pour ta reponse
Ca ne fonctionne pas cher moi jai comme erreur la fonction sendmessage ne comporte pas 4 parametre
en effet kan je regarde les parametre de la fonction sendmessage il ni a ke 3 donne rekise:(UINT,lparam,wparam) un truc comme ca je croi
j ai pas msdn donc chui aller voir sur microsoft
et la il a 4 parametre pour sendmessage je compren pas vu que g bien visual c++ 6
porquoi c different cher moi chai pa....



-------------------------------
Réponse au message :
-------------------------------

salut,
pas compliqué... voilà un exemple tout bête:

char szTmp[50];
UINT i;
RECT rc;
GetClientRect( hwnd, &rc );
hwndConn = CreateWindow( "LISTBOX",
"Connections",
WS_CHILD | WS_VISIBLE | WS_HSCROLL |
WS_VSCROLL | LBS_USETABSTOPS | LBS_NOINTEGRALHEIGHT | LBS_SORT,
0,
0,
rc.right,
rc.bottom,
hwnd,
(HMENU) IDL_CONN,
lpCreateStruct->hInstance,
NULL );


// ajout de 3 items
SendMessage(hwndConn, LB_ADDSTRING, (WPARAM) 0, (LPARAM) (LPTSTR) "item1") ;
SendMessage(hwndConn, LB_ADDSTRING, (WPARAM) 0, (LPARAM) (LPTSTR) "item2") ;
SendMessage(hwndConn, LB_ADDSTRING, (WPARAM) 0, (LPARAM) (LPTSTR) "item3") ;

// insertion d'un item en seconde position
wsprintf (szTmp, "item inséré", 1);
SendMessage (hwndConn, LB_INSERTSTRING, 1, (DWORD)(LPSTR)szTmp);

// sélection du second item
SendMessage(hwndConn, LB_SETCURSEL, (WPARAM) 2, (LPARAM) 0 ) ;

// récupération de la données associées par défaut à l'item d'indice 1 (2nde position)
i = SendMessage(hwndConn, LB_GETITEMDATA, (WPARAM)1, (LPARAM)0);

// affichae => valeur initiale de 0
sprintf(szTmp, "item %ld", i);
MessageBox(hwnd, (LPSTR)szTmp, "CB MSG", MB_OK);

// affectation d'une numérique 50
SendMessage (hwndConn, LB_SETITEMDATA, 1, (DWORD)50);

// récupération de la valeur numérique
i = SendMessage(hwndConn, LB_GETITEMDATA, (WPARAM)1, (LPARAM)0);
sprintf(szTmp, "item %ld", i);
MessageBox(hwnd, (LPSTR)szTmp, "CB MSG", MB_OK);


// affectation d'une chaîne de caractères
SendMessage (hwndConn, LB_SETITEMDATA, 2, (DWORD)(LPSTR)"toto");

// récupération de cette chaîne
MessageBox(hwnd, (LPSTR)(DWORD)SendMessage(hwndConn, LB_GETITEMDATA, (WPARAM)2, (LPARAM)0), "CB MSG", MB_OK);

// récupération de la sélection courante
index = SendMessage( hwndConn, LB_GETCURSEL,(WPARAM) 0, (LPARAM) 0 );


voilà... si tu veux + d'infos n'hésite pas!


shuss
l'lo


-------------------------------
Réponse au message :
-------------------------------

c tout con ms jarive pas a faire fonctionner une list box
jarive pa a utiliser la fonction sendmessage
quelqun pourrai me faire un code pour exemple svp
qui rajoute des element ds la list en retire...
merci davance


lundi 23 février 2004 à 19:40:45 | Re : faire fonctionner une list box

sacksith


Salut,

j'ai essaye d'utiliser les infos de lolman27 et en voici le code


//DEBUT CODE
LRESULT CALLBACK LCBoG5(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG :
DlgDirList(hDlg, "map/*.map", IDC_CARTECHOIX, 0, DDL_READONLY);
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDC_B6VALID:
HWND hList = GetDlgItem(hDlg, IDC_CARTECHOIX);
if (hList)
{
int index = SendMessage(hList, LB_GETCURSEL,(WPARAM) 0, (LPARAM) 0 );
MessageBox(hDlg, (LPSTR)(DWORD)SendMessage(hList, LB_GETITEMDATA, (WPARAM)index, (LPARAM)0), "CB MSG", MB_OK);
}
break;
}
break;
default :
return(false);
}
return(true);
}
//FIN CODE

IDC_B6VALID est un bouton qui ouvre une messagebox qui doit afficher la selection de l'index de la listbox.
Si le messagebox s'affiche bien, il est vide :(

Pourriez-vous m'aider à voir l'erreur. J'ai pourtant bien envoyé un message indiquant la selection courant, non ?
merci
dom


Cette discussion est classée dans : box, list, fonctionner, jarive


Répondre à ce message

Sujets en rapport avec ce message

Écrire un Message dans « List Box » [ par JCpp ] Slt,Sur le langage Visual Studio en CppDans la fenêtre « Dialog1 », j?ai mi une fenêtre « List Box »Pour afficher il suffit d?écrire :SendDlgItemMessa pb list box en VC++ [ par owel ] salut !!je voudrai faire un truc simple affiché le contenu d'un repertoire dans une list box mais je n'y arrive pas !la lecture du fichié pas de pb !m VC++ 6 && list box [ par safira ] safiraSalut!!je voudrais savoir comment faire apparaître sélectionné, le premier champs d'une list box?Merci ecrire dans list control / list box [ par alanbraxe31 ] http://membres.lycos.fr/alanbraxe31MFCsalut!je cherche à remplir et modifier des champs dans une list control ou une list box (visual c++) que j'ai cr ecrire dans une list box via visual c++ 6 [ par raspa ] j'en ai marre de galérer pour ce genre de connerie :o(voilà, ce que j'ai fait:dans une appli avec MFC, j'ai mis une fenetre list box, et quand je veux comment supprimer des item selectionner dans une list box? [ par raspa ] voilà le code que je test sous VISUAL C++ 6:void CFileInfoDlg::OnSupprimer() { for (int i=0;i { if (m_List2.GetSel(i) >0 ) { m_List2.DeleteString List box recuperation des string [ par youpiyoyo ] j'aurai besoin de recup les donné dans une list boxdans case LBN_SELCHANGE:j'ai essayé GetDlgItemText mais ca marche pomerci d'avanceyoupiopen source Afficher dans une List box [ par Wiwi ] Bonjour,je souhaite insérer des données dans une list box.Pour le moment j'utilise :m_msg_box.AddStirng("1");m_msg_box.AddString("2");m_msg_box.AddStr ecrire dans une List Box à partir d'un thread [ par seito ] [size = 5] Seito [/size]S'il vous plait j'aimerais ajouté du texte dans une liste BOX mais le texte est receuillit par un thread est ce que quelqu'u list box et thread [ par seito ] s'il vous plait est ce que quelqu'un sait comment accéder à une LIST BOX à partir d'un thread.je travaille sous MFC "visual c++ 6.0"la list box à été


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales