ListBox:怎樣可以在MouseDown事件中if Button=2時,選中一個Item(Mouse的當前位置)???????在線waiting!!!!萬分火急!!!!!!!!!!!!!!!!!!!!!!!!
解决方案 »
- 【征求】简易数据库的设计思路
- 我想写一个文件备份
- 如何改变窗口上标题栏的颜色啊
- 请问:settimer 中的 AddressOf TimerProc 是什么意思啊!
- VB调用外部程序的问题(在线)
- 在线等待,如何将数据库中的图片字段(sqlserver 中的 ole 字段)显示到data report
- vb制作音乐播放器中,怎样做到切换歌曲列表中音乐的同时切换成对应的图片?
- 关于ADO中的recordset对象的排序方法(很急)
- 紧急!!!快来看看这一段代码!关于数据库更新的!为什么.........????
- ### 在Win9x中可以打开网络登陆对话框,现在在Win2000不可以了,请问如何实现? ###
- 如何取得datagrid高亮显示的纪录,而不是箭头指向的纪录
- 请问用什么控件?完成9台计算机和一台服务器的双向通信。该控件哪里可以找到?
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
Private Sub Form_Load()
For i = 1 To 100
List1.AddItem i
Next
End SubPrivate Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lX As Long
Dim lY As Long
Dim lIndex As Long
lX = CLng(X / Screen.TwipsPerPixelX)
lY = CLng(Y / Screen.TwipsPerPixelY)
lIndex = SendMessage(List1.hwnd, &H1A9, 0, _
ByVal ((lY * 65536) + lX))
If Button = 2 Then
List1.SetFocus
If lIndex >= 0 And lIndex <= List1.ListCount Then
List1.Selected(lIndex) = True End If
End If
End Sub
厲害啊!~
高手,佩服佩服.非常感謝!
不過我這調用了另一個API,通過模擬左鍵也能實現這個功能:Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)Private Const MOUSEEVENTF_RIGHTDOWN = &H8 ' right button down
Private Const MOUSEEVENTF_RIGHTUP = &H10 ' right button upPrivate Sub List1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = vbRightButton Then
Call mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)
Call mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0)
DoEvents
End If
End Sub也挺麻煩的,以後還請你多多指教嘍!
Private Const MOUSEEVENTF_LEFTUP = &H4 ' left button up
Private Const MOUSEEVENTF_LEFTDOWN = &H2 ' left button down
Private Sub List1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = vbRightButton Then
Call mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
DoEvents
End If
End Sub