加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

DataGrid支持鼠标滚轮滚动记录

发布时间:2020-12-16 22:45:53 所属栏目:大数据 来源:网络整理
导读:http://www.mndsoft.com/blog/article.asp?id=901 在本站的VB源码《数据网格下拉列表框控件》中(链接地址:http://www.mndsoft.com/blog/article.asp?id=214)中,网友 taomaintao 提示支持滚轮鼠标,其实原本代码有已经有部分API代码意图支持鼠标滚轮,但可

http://www.mndsoft.com/blog/article.asp?id=901

在本站的VB源码《数据网格下拉列表框控件》中(链接地址:http://www.mndsoft.com/blog/article.asp?id=214)中,网友 taomaintao 提示支持滚轮鼠标,其实原本代码有已经有部分API代码意图支持鼠标滚轮,但可能作者后来没有加上。基于此,我找到一个解决办法(来自网络),taomaintao 网友可以按照下面自己进行修改吧。 首先在DataGrid 的 【拆分】 属性中的【选取框样式】设置为 3,即整行高亮选择,然后加入如下代码就支持了,只要让鼠标的焦点在grid控件上,滚动鼠标滑轮,grid滚动条会自动滚动的。 如果需要更平滑的滚动以及自定义滚动方法,我还有个代码,到时发给你,你自己研究吧。 示例操作方法: 将以下代码写到公共模块中 '支持滚轮鼠标API--------------------------------- 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 lParam As Long) As Long '支持滚轮的滚动 Yu 2004-5-10 15:33 Select Case wMsg Case WM_MOUSEWHEEL Select Case wParam Case -7864320 '向下滚 SendKeys "{PGDN}" Case 7864320 '向上滚 SendKeys "{PGUP}" End Select End Select FlexScroll = CallWindowProc(Oldwinproc,hWnd,wMsg,wParam,lParam) End Function '支持滚轮鼠标API--------------------------------- '将下列代码写到表格控件的GotFocus事件中 Private Sub 控件名称_GotFocus() Oldwinproc = GetWindowLong(Me.hWnd,GWL_WNDPROC) SetWindowLong Me.hWnd,GWL_WNDPROC,AddressOf FlexScroll End Sub '将下列代码写到表格控件的LostFocus事件中 Private Sub 控件名称_LostFocus() SetWindowLong Me.hWnd,Oldwinproc End Sub

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读