Item sous coordonnées x y

Résolu
flyingfish Messages postés 41 Date d'inscription jeudi 19 février 2004 Statut Membre Dernière intervention 4 août 2006 - 11 févr. 2005 à 09:21
flyingfish Messages postés 41 Date d'inscription jeudi 19 février 2004 Statut Membre Dernière intervention 4 août 2006 - 16 févr. 2005 à 11:55
Bonjour,

Je voudrai récupérer une item d'un listView en ne connaissant que les coordonnées x et y
du pointeur de la souris.

Je ne peux pas utiliser la méthode GetItemAt
car je n'ai pas les classes .NET Framework Class Library

Merci de votre aide car là je suis coincé !

4 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
11 févr. 2005 à 11:47
3
boumarsel Messages postés 298 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 9 juillet 2008 1
11 févr. 2005 à 15:00
n'oublie pas de faire une conversion de cordonnées ScreenToClient (je ne suis pas certain de la syntaxe)
0
flyingfish Messages postés 41 Date d'inscription jeudi 19 février 2004 Statut Membre Dernière intervention 4 août 2006
11 févr. 2005 à 15:54
Je vais tester tout ça et je vous tiendrai au courant !

MERCI
0
flyingfish Messages postés 41 Date d'inscription jeudi 19 février 2004 Statut Membre Dernière intervention 4 août 2006
16 févr. 2005 à 11:55
ça marche !!! Merci bien !

#include <windows.h>
#include <WINDEF.H>
#include <stdio.h>
#include <commctrl.h>


HWND LocalHwnd;
POINT pt;
LVHITTESTINFO pinfo;
LRESULT MyResult = 0;
//CHAR buf[500];


//Recherche de l'handle
CWnd *MyHandle;MyHandle = ObPanelAPI::GetControlCWndByName("ListView1");
//sprintf(buf,"My Handle %x",MyHandle);
//AfxMessageBox(buf);
LocalHwnd=MyHandle->GetSafeHwnd();
//sprintf(buf,"Hwnd %x",LocalHwnd);
//AfxMessageBox(buf);


//Chercher la position du curseur
GetCursorPos(&pt);
ScreenToClient(LocalHwnd, &pt);
pinfo.pt = pt ;

//MyResult reçoit l'index de l'item
//ATTENTION : la première item reçoit l'index 0, la 2 l'index 1, etc...
MyResult = MyHandle->SendMessage((UINT) LVM_HITTEST, 0,(LPARAM)&pinfo);
0
Rejoignez-nous