Gestion de la souris listview c++ api Win32 [Résolu]

Messages postés
12
Date d'inscription
mardi 23 septembre 2008
Dernière intervention
15 mai 2010
- - Dernière réponse : cs_Spunk62
Messages postés
12
Date d'inscription
mardi 23 septembre 2008
Dernière intervention
15 mai 2010
- 18 juin 2009 à 10:44
Bonjour, je voudrai savoir comment récupérer la cellule d'une listview avec un click de la souris
voila ce que j'ai fait:

       case WM_LBUTTONUP:
       {    
         // Déterminer l'élément pointé par la souris:
         lvhti.pt.x = LOWORD(lParam);
         lvhti.pt.y = HIWORD(lParam);
         SendMessage(hlistviewA,LVM_HITTEST,0,(LPARAM)&lvhti);
         // Ne rien faire si en dehors des éléments de la ListView:
         if (lvhti.iItem == -1) break;
         // Trouver l'élément sélectionné:
         int iSelected = SendMessage(hlistviewA,LVM_GETNEXTITEM,-1,LVIS_SELECTED);
         // Ne rien faire si aucun élément sélectionné ou s'il s'agit du même élément que celui pointé par la souris:
          if ((TabListA) && (iSelected>-1))//TabListA =>listview active
          {
          DialogBox(hInst,MAKEINTRESOURCE(IDD_CHOIX),ChildAnalyse,About);
          }        
       }
le but est de cliqué sur un item puis d'afficher une boite de dialogue correspondant a cette item.
Merci
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Dernière intervention
14 novembre 2014
3
Merci
Salut,
Tu peux traiter WM_NOTIFY et capturer le message NM_CLICK, NM_BDLCLK, NM_RCLICK, NM_RDBLCLK ou LVN_ITEMCHANGED.
Exemple:
    case WM_NOTIFY:
    {
        NMHDR* pnmh = (NMHDR*)lParam;        if(pnmh->hwndFrom hlistview && pnmh->code NM_CLICK )
        {
            NMITEMACTIVATE* pia=(NMITEMACTIVATE*) lParam;
            // pia->iItem contient l'index de l'item cliqué
            // pia->iSubItem contient l'index du sous-item cliqué
            return 0;
        }
    return 0;       
    }

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de racpp
Messages postés
12
Date d'inscription
mardi 23 septembre 2008
Dernière intervention
15 mai 2010
0
Merci
Re, j'ai essayé d'afficher un message box (MessageBox(NULL,"ok","vide",MB_OK| MB_ICONEXCLAMATION);) dans le if mais il ne s'affiche jamais.
Commenter la réponse de cs_Spunk62
Messages postés
12
Date d'inscription
mardi 23 septembre 2008
Dernière intervention
15 mai 2010
0
Merci
J'ai rien dit... par contre j'ai un tabcontrol et quant je fait (SendMessage(hlistview,LVM_GETNEXTITEM,-1,LVIS_SELECTED);) il me prend les item du tabcontrol et pas de la listview.
Commenter la réponse de cs_Spunk62

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.