|
|
 | Højreklik på listview (del 2), VB6 Fra : Neo |
Dato : 11-04-05 07:56 |
|
Hej alle
Kan I mon hjælpe mig med den her ?
Jeg har en listview (lvDag) hvor der fremkommer en popup menu når jeg
højreklikker på den.
Problemet er at jeg ikke får valgt den række jeg højreklikker på, altså
lvDag.selecteditem.index reagerer ikke på mit højreklik.
Som det er nu bliver jeg nødt til at venstreklikke med musen på den række
jeg er interesseret i at tilgå (lvDag.selecteditem.index), og derefter
højreklikke for popup menu.
Hvad skal jeg gøre for at vælge rækken og få popup i et enkelt højreklik ?
min kode ser således ud:
Private Sub lvdag_MouseDown(Button As Integer, Shift As Integer, x As
Single, y As Single)
' Make sure it's the right button.
If Button And vbRightButton Then
[en masse kode]
popup:
PopupMenu mnuPopup
End If
End Sub
mvh Neo
| |
Agner (11-04-2005)
 | Kommentar Fra : Agner |
Dato : 11-04-05 14:46 |
|
"Neo" <neo___dk@hotmail.removethis.com> skrev i en meddelelse
news:425a2113$0$173$edfadb0f@dtext02.news.tele.dk...
> Hej alle
>
> Kan I mon hjælpe mig med den her ?
>
> Jeg har en listview (lvDag) hvor der fremkommer en popup menu når jeg
> højreklikker på den.
>
> Problemet er at jeg ikke får valgt den række jeg højreklikker på, altså
> lvDag.selecteditem.index reagerer ikke på mit højreklik.
>
> Som det er nu bliver jeg nødt til at venstreklikke med musen på den række
> jeg er interesseret i at tilgå (lvDag.selecteditem.index), og derefter
> højreklikke for popup menu.
>
> Hvad skal jeg gøre for at vælge rækken og få popup i et enkelt højreklik ?
>
> min kode ser således ud:
>
> Private Sub lvdag_MouseDown(Button As Integer, Shift As Integer, x As
> Single, y As Single)
>
> ' Make sure it's the right button.
> If Button And vbRightButton Then
>
> [en masse kode]
>
> popup:
> PopupMenu mnuPopup
> End If
>
> End Sub
>
>
> mvh Neo
'Det kan godt være der er en nemmere metode.
'Api' en og Const skal stå i formens declaration sektion.
hilsen, agner
Private Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Const LB_GETITEMHEIGHT = &H1A1
Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As
Single, Y As Single)
Dim rtn As Long, ms As Long, nr As Integer, tPerP As Integer
Dim i As Integer
tPerP = Screen.TwipsPerPixelY
If Button And vbRightButton Then
For i = 0 To List1.ListCount - 1
If List1.Selected(i) = True Then List1.Selected(i) = False
Next
rtn = SendMessage(List1.hwnd, LB_GETITEMHEIGHT, 0&, 0&)
rtn = rtn * tPerP
nr = Int(Y / rtn) + List1.TopIndex
List1.Selected(nr) = True
End If
End Sub
| |
|
|