Gendal67
Messages postés627Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention24 juillet 2011
-
27 mars 2005 à 22:20
cs_mayti
Messages postés36Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention11 juin 2005
-
28 mars 2005 à 18:35
Bonsoir à tous,
Je viens de chercher en vain depuis je ne sais combien de temps...je suis sans solution alors je me tourne vers vous en espérant qu'un brillant génie généreux me donnera une solution :p
Voila voilou, je dispose d'une listbox dans une boite modale (dialogbox) et j'aimerais savoir quand on clique dessus! Je connais les messages WM_RBUTTONUP contenus normalement dans le LOWORD(lParam) ... mais ici pour ma listbox enfant je ne peux les utiliser! Au mieux, j'ai trouvé comment etre mis au courant quand on double click sur ma liste avec le code suivant :
case LST_ONLINE:
switch(HIWORD(wParam)) {
case LBN_DBLCLK:
HWND hWnd;
hWnd = GetDlgItem(hDlg, LST_ONLINE);
int result;
result = SendMessage(hWnd, LB_GETCURSEL, 0, 0);
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 28 mars 2005 à 02:16
Salut,
Tu dois sous-classer ta listbox. Le sous-classement n'est pas compliqué voici comment faire:
1- Tu crées une variable globale WNDPROC qui contiendra l'adresse de la procédure originale.
2- Récupérer l'adresse de la procédure originale (invisible) de
la listbox et la remplacer par l'adresse de notre procédure de
sous-classement pendant le traitement du message WM_INITDIALOG
grâce à la fonction SetWindowLong().
3- Dans la procédure de sous-classement , on intercepte le message
WM_RBUTTONDOWN. On fait ce qu'on veut durant son traitement .On
peut finir par un return 0 pour que ce message ne soit pas
renvoyé à la procédure originale.
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 28 mars 2005 à 02:28
J'ai oublié de préciser que tu peux intercepter n'importe quel autre message, WM_RBUTTONDOWN,
WM_RBUTTONUP, WM_LBUTTONDOWN, WM_LBUTTONUP, WM_LBUTTONDBLCLK etc...
Tu peux aussi les intercepter tous. Pareil pour tous les autres messages Windows déstinés à ta listbox.
cs_mayti
Messages postés36Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention11 juin 2005 28 mars 2005 à 18:35
si vous savez comment mettre un titre au menu et ne pas le faire
apparaitre quand la souris n'ai pas sur un élement selectionner de la
listbox, m'interesserait.