Urgent utilisation de hittest

cs_cirrus Messages postés 12 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 17 novembre 2006 - 15 juil. 2004 à 12:11
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 15 juil. 2004 à 14:48
qqun pourrait m'expliquere birèvement comment fonctionne la fonction hittest (en particulier sur un listview) . lorsque je m'en sert il me renvoi toujours le premier element du controle quelque soit la position de la souris !

1 réponse

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
15 juil. 2004 à 14:48
Salut Cirrus
Voilà un exemple d'utilisation pour afficher un menu contextuel quand on clique-droit sur une ligne d'un ListView :
Private Sub lstMessages_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    ' Si click-droit seulement
    If Button = 2 Then
        ' On ressort s'il n'y a rien sur cette ligne
        If lstMessages.HitTest(x, y) Is Nothing Then Exit Sub
        ' Sélectionne cette ligne
        Dim Ligne As Long
        Ligne = lstMessages.HitTest(x, y).Index
        lstMessages.ListItems(Ligne).Selected = True
        ' Pour que les menus sache de quelle ligne il s'agit
        mnuzMenuMessage.Tag = Ligne
        ' La fonction PopupMenu sert à afficher un menu contextuel
        ' Celui défini dans la forme, mais rendu invisible
        ' On se positionne une ligne en dessous du click (plus clair)
        PopupMenu mnuzMenuMessage, _
                  vbPopupMenuCenterAlign Or vbPopupMenuRightButton, _
                  x + lstMessages.Left, _
                  y + lstMessages.Top + lstMessages.ListItems.Item(1).Height
    End If
End Sub

Vala
Jack
0
Rejoignez-nous