Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1361 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [win32] Message LB_GETSELITEMS

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[win32] Message LB_GETSELITEMS

n°1149824
dd92
Posté le 14-07-2005 à 11:39:09  profilanswer
 

Bonjour,
Dans une procedure j'essaie de gerer le message "LB_GETSELITEMS" mais  je ne sais pas m'y prendre pour renvoyer lParam et le retrouver dans mon "tabindex" ....
Dans le programme appelant je fais :

Code :
  1. SendMessage (hstatic1, LB_GETSELITEMS, 10, tabindex);


 
Dans la DLL :

Code :
  1. case LB_GETSELITEMS  :
  2.          lpGrid = (GRID *)GetWindowLong(hwnd,0);
  3.          if (wParam <= 0)
  4.             return(LB_ERR);
  5.          MaxItem = (UINT)wParam;
  6. // ALIMENTER "lParam" (LE TABLEAU d'Entiers "tabindex" ATTENDU au SendMessage)
  7. //    ET LE RETROUVER DANS L'APELLANT POUR EXPLOITER LES NUMEROS DE LIGNES SELECTIONNES ......    
  8.        
  9.          return(0L);
  10. //


 
Normalement, lParam en arrivant dans le message est vide mais c'est la manière de le retourner que je ne maitrise pas ...
Faut il faire un Alloc de memoire de (Nbre de postes * sizeof(UINT) )?  
 
Merci d'avance.

mood
Publicité
Posté le 14-07-2005 à 11:39:09  profilanswer
 

n°1149971
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 14-07-2005 à 13:48:01  profilanswer
 

bah normalement t'as pas à le retourner, puisqu'il est censé être alloué sur le heap :heink:
t'as juste qu'à le lire une fois le message traité
 
tu as bien alloué ce tableau je suppose, en fonction du nombre d'éléments sélectionnés, avec un code dans le genre :

Code :
  1. int nsel=SendDlgItemMessage(hdlg,ID_LISTBOX,LB_GETSELCOUNT,0,0);
  2. int *tabindex=(int *)calloc(nsel,sizeof(int));


et pour alimenter le tableau, tu passes bien également par SenDlgItemMessage() ? du genre :

Code :
  1. SendDlgItemMessage(hDlg,ID_LISTBOX,LB_GETSELITEMS,nsel,(LPARAM)tabindex);


---------------
J'ai un string dans l'array (Paris Hilton)
n°1150030
dd92
Posté le 14-07-2005 à 14:42:05  profilanswer
 

Quand je traite un buffer en char ça fonctionne :
strcpy(szBuffer, "Je viens de ce module ..." );
memcpy((LPSTR)lParam,szBuffer, sizeof(szBuffer));
 
mais avec de l'integer ça plante, je n'arrive pas a allouer une zone de MaxItem * sizeif(int) ....

n°1151239
slash33
Posté le 16-07-2005 à 14:39:27  profilanswer
 

Tu as vérifié la valeur de MaxItem au moins?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [win32] Message LB_GETSELITEMS

 

Sujets relatifs
Win32 - bitbltdecrypter un message d'erreur
Socket qui ne prend qu'un seul message...Afficher un message de la bdd
[résolu]tabulation dans une appli hosté par du win32[mailto] regler la police du message
faire appaître un message sur une session fermée (cTRL+alt+suppr)message d'erreur
SIGPIPE, perl et Win32Liste (en fçais) des API Win32 ?
Plus de sujets relatifs à : [win32] Message LB_GETSELITEMS


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR