我要实现 Combox下啦后自动打开下拉的地址
这个已经实现了
Private Sub cmbAdd_Click()
'MsgBox Me.cmbAdd.Text
Call OpenAddressUrl(False, False, Me.cmbAdd.Text)
End Sub
但是会有个问题
鼠标滚轮滚动的时候会自动打开
但是我不需要 他自动打开 有人给的这段 代码'moudle
Option ExplicitPublic OldWindowProc As Long
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Const GWL_WNDPROC = (-4)
Private Const WM_MOUSEWHEEL = &H20A
Public Function NewWindowProc(ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If msg = WM_MOUSEWHEEL Then
NewWindowProc = 1
Else
NewWindowProc = CallWindowProc(OldWindowProc, hwnd, msg, wParam, lParam)
End If
End FunctionPublic Sub SubClsMe(ByVal hwnd As Long)
OldWindowProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf NewWindowProc)
End Sub
Public Sub unSubClsMe(ByVal hwnd As Long)
SetWindowLong hwnd, GWL_WNDPROC, OldWindowProc
End Sub'form code
Option ExplicitPrivate Sub Form_Load()
Combo1.AddItem "sadfsdf"
Combo1.AddItem "safffffffffffffffdfsdf"
Combo1.AddItem "sadfsdfadsff"
Combo1.AddItem "sadfzxcxxxxxxxxxxxxxxxxxsdf"
SubClsMe Combo1.hwndEnd SubPrivate Sub Form_Unload(Cancel As Integer)
unSubClsMe Combo1.hwnd
End Sub可以实现禁止鼠标滚轮
但是我只是希望
他滚轮的时候不要触发打开网页的事件
当客户打开下拉列表的时候 鼠标滚轮的效果还是有的 (遨游浏览器的地址栏就是这样的 当焦点在地址栏的时候 鼠标滚轮效果没有
但是当你点下拉的时候滚轮效果是有的 但是没有 click事件)这样该如何处理?
这个已经实现了
Private Sub cmbAdd_Click()
'MsgBox Me.cmbAdd.Text
Call OpenAddressUrl(False, False, Me.cmbAdd.Text)
End Sub
但是会有个问题
鼠标滚轮滚动的时候会自动打开
但是我不需要 他自动打开 有人给的这段 代码'moudle
Option ExplicitPublic OldWindowProc As Long
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Const GWL_WNDPROC = (-4)
Private Const WM_MOUSEWHEEL = &H20A
Public Function NewWindowProc(ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If msg = WM_MOUSEWHEEL Then
NewWindowProc = 1
Else
NewWindowProc = CallWindowProc(OldWindowProc, hwnd, msg, wParam, lParam)
End If
End FunctionPublic Sub SubClsMe(ByVal hwnd As Long)
OldWindowProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf NewWindowProc)
End Sub
Public Sub unSubClsMe(ByVal hwnd As Long)
SetWindowLong hwnd, GWL_WNDPROC, OldWindowProc
End Sub'form code
Option ExplicitPrivate Sub Form_Load()
Combo1.AddItem "sadfsdf"
Combo1.AddItem "safffffffffffffffdfsdf"
Combo1.AddItem "sadfsdfadsff"
Combo1.AddItem "sadfzxcxxxxxxxxxxxxxxxxxsdf"
SubClsMe Combo1.hwndEnd SubPrivate Sub Form_Unload(Cancel As Integer)
unSubClsMe Combo1.hwnd
End Sub可以实现禁止鼠标滚轮
但是我只是希望
他滚轮的时候不要触发打开网页的事件
当客户打开下拉列表的时候 鼠标滚轮的效果还是有的 (遨游浏览器的地址栏就是这样的 当焦点在地址栏的时候 鼠标滚轮效果没有
但是当你点下拉的时候滚轮效果是有的 但是没有 click事件)这样该如何处理?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货