Snifff, ça déconne !! mais pk ???

Résolu
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 - 21 nov. 2004 à 18:54
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 - 22 nov. 2004 à 17:34
Svp, je désespère!!! J'essaie de créer ue listebox et un boutton de telle sorte que qd je clik sur le bouton, il m'affiche par exemple l'item selectionné!! J'ai lu partout des tas de trucs mais ché moi sa marche pas, c pas possible!!! Voici mon code...

     case WM_COMMAND:
         
        switch(LOWORD(wParam)) {
        
           case PROC_SELECT:
               
             if (HIWORD(wParam) != LBN_SELCHANGE) break;
             
               int index;
               int caracCnt;
               
               index = SendMessage(hProcList, LB_GETCURSEL, 0, 0);
               
               SendMessage(hProcList, LB_GETSEL, (WPARAM) index, 0);
               
               caracCnt = SendMessage(hProcList, LB_GETTEXTLEN, (WPARAM) index, 0);
               SendMessage(hProcList, LB_GETTEXT, (WPARAM) 2, (LPARAM) ItemSelected);
               
               MessageBox(0, ItemSelected, "lol", MB_OK);                    
            break;


Le sendmess' ac LB_GETCURSEL retourne TOUJOURS 0 et celui du LB_GETSEL retourne TOUJOURS un résultat FALSE...donc au final, la string à afficher est tjs vide!!!! :'((( plz!!! aidez moi, sa me stresse trop la!!!

Gendal67, à votre service !

10 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
22 nov. 2004 à 09:08
HWND hProcList;

soit tu met en static dans ta DlgProc, soit tu met en global mais pas en local (la valeur n'est valable que pour le traitement de WM_INITDIALOG)!!
ou alors tu récupère le handle à chaque message.
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 nov. 2004 à 19:23
LB_GETCURSEL pour avoir l'index selectionne.

ciao...
BruNews, MVP VC++
0
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
21 nov. 2004 à 19:24
Je sais aps si tu as bien lu le bas de mon topic!!! G essayé, tu as vu ??

Gendal67, à votre service !
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 nov. 2004 à 19:33
passe un handle de listbox valide et tu auras un retour valide.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
21 nov. 2004 à 19:35
Jcall pas c eki a de faux ici ....

     case WM_INITDIALOG:
         
         HWND hProcList;
         hProcList = CreateWindowEx(WS_EX_CLIENTEDGE, "LISTBOX", NULL,
         WS_VISIBLE | WS_CHILD | WS_HSCROLL | WS_VSCROLL | LBS_SORT | LBS_NOTIFY,
         10, 10, 150, 150, hDlg, (HMENU) PROC_SELECT, hInst, NULL);
       
       QueryProcesses(hProcList);          
      break;

yavé sa avant, ou es le pb ?? :(

Gendal67, à votre service !
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 nov. 2004 à 19:44
Pourquoi tu t'emmerdes avec un CreateWindowEx sur une dialog, mets ta listbox en ressource avec le reste, c'est nettement + rapide en temps de creation de la fenetre.
ensuite: hProcList = GetDlgItem(...);

ciao...
BruNews, MVP VC++
0
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
21 nov. 2004 à 19:55
nan nan, tjs pas...

  switch(message) {
    
     case WM_INITDIALOG:
         
         HWND hProcList;
         hProcList = GetDlgItem(hDlg, PROC_SELECT); 
       
       QueryProcesses(hProcList);          
      break;
     
     case WM_CLOSE:
       
       EndDialog(hDlg, 0);
      break;
      
     case WM_COMMAND:
         
        switch(LOWORD(wParam)) {
        
           case PROC_SELECT:
               
             if (HIWORD(wParam) != LBN_SELCHANGE) break;
             
               int index;
               int caracCnt;
               
               index = SendMessage(hProcList, LB_GETCURSEL, 0, 0);
               
               SendMessage(hProcList, LB_GETSEL, (WPARAM) index, 0);
               
               caracCnt = SendMessage(hProcList, LB_GETTEXTLEN, (WPARAM) index, 0);
               SendMessage(hProcList, LB_GETTEXT, (WPARAM) index, (LPARAM) ItemSelected);
               
               MessageBox(0, ItemSelected, "lol", MB_OK);                    
            break;


Gendal67, à votre service !
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 nov. 2004 à 20:12
bizzare chez moi ça marche:
http://www.cppfrance.com/code.aspx?id=17658
surement chez les autres aussi.

ciao...
BruNews, MVP VC++
0
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
21 nov. 2004 à 20:17
Oui, c tro louche, t sur ke ta pas une idée d'ou peut venir le pb ??

Gendal67, à votre service !
0
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
22 nov. 2004 à 17:34
ymca, je vai te faire un bisou !!! LOOL, merci bcp de ton aide, enfin sa marche!!!!! kler ke la variable locale étant destroy apres le traitement de WM_INITDIALOG....yavé peu de chance que sa marche :-)) merci encore!!!!

Gendal67, à votre service !
0
Rejoignez-nous