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

cs_Spunk62 12 Messages postés mardi 23 septembre 2008Date d'inscription 15 mai 2010 Dernière intervention - 17 juin 2009 à 11:35 - Dernière réponse : cs_Spunk62 12 Messages postés mardi 23 septembre 2008Date d'inscription 15 mai 2010 Dernière intervention
- 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
racpp 1910 Messages postés vendredi 18 juin 2004Date d'inscription 14 novembre 2014 Dernière intervention - 17 juin 2009 à 13:23
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;       
    }

Merci racpp 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de racpp
cs_Spunk62 12 Messages postés mardi 23 septembre 2008Date d'inscription 15 mai 2010 Dernière intervention - 18 juin 2009 à 10:18
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
cs_Spunk62 12 Messages postés mardi 23 septembre 2008Date d'inscription 15 mai 2010 Dernière intervention - 18 juin 2009 à 10:44
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.