- UID
- 10195
- 积分
- 527
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-9-19
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2004-8-4 17:52:36
|
显示全部楼层
直接把引用代码模块是可以啊,不过用控件更好一点吧。程序会精炼一点啊。而且也可以避免出问题。
另外vb6中如果有用户控件模块,我一直使用的一个鼠标控制软件就不起作用了,所以还是想编译成ocx来用。
编译后不能用是不是控件外部接口没做好的原因?
ntchjie 说的更好的驱动是什么?
找到另一个源代码,不是控件方式。各有所长。
还是希望有高手把上面的控件修改修改,我还改不来
http://www.lihuasoft.net/article/show.php?id=918

- 让程序的鼠标支持滚轮
- 发表日期:2004-07-14 作者:[翻译] 出处:CSDN
-
-
- 以下代码写在模块里面
- Public Const GWL_WNDPROC = (-4)
- Public Const WM_COMMAND = &H111
- Public Const WM_MBUTTONDOWN = &H207
- Public Const WM_MBUTTONUP = &H208
- Public Const WM_MOUSEWHEEL = &H20A
-
- Public Oldwinproc 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 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 GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, _
- ByVal nIndex As Long) As Long
-
- Public Function FlexScroll(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
- '支持滚轮的滚动 Yu 2004-5-10 15:33
- Select Case wMsg
- Case WM_MOUSEWHEEL
- Select Case wParam
- Case -7864320 '向下滚
- SendKeys "{PGDN}"
- Debug.Print "{PGDN}"
- Case 7864320 '向上滚
- SendKeys "{PGUP}"
- Debug.Print "{PGUP}"
- End Select
- End Select
- FlexScroll = CallWindowProc(Oldwinproc, hWnd, wMsg, wParam, lParam)
- End Function
-
-
-
- 以下代码写在窗体里面
-
- Private Sub Picture1_GotFocus()
- Oldwinproc = GetWindowLong(Me.hWnd, GWL_WNDPROC)
- SetWindowLong Me.hWnd, GWL_WNDPROC, AddressOf FlexScroll
- End Sub
-
- Private Sub Picture1_LostFocus()
- SetWindowLong Me.hWnd, GWL_WNDPROC, Oldwinproc
- End Sub
- Private Sub MSFlexGrid1_GotFocus()
- Oldwinproc = GetWindowLong(Me.hWnd, GWL_WNDPROC)
- SetWindowLong Me.hWnd, GWL_WNDPROC, AddressOf FlexScroll
- End Sub
-
- Private Sub MSFlexGrid1_LostFocus()
- SetWindowLong Me.hWnd, GWL_WNDPROC, Oldwinproc
- End Sub
-
|
|