DataGrid支持鼠标滚轮滚动记录
来源:互联网 发布:nuke mac破解失败 编辑:程序博客网 时间:2024/05/21 17:19
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 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}"
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, GWL_WNDPROC, Oldwinproc
End Sub
- 使DataGrid支持鼠标滚轮滚动记录
- DataGrid支持鼠标滚轮滚动记录
- 怎样使DataGrid支持鼠标滚轮滚动记录
- 如何让DbGrid支持鼠标滚轮滚动
- DBGrid支持鼠标滚轮滚动的解决办法
- DBGrid支持鼠标滚轮滚动的解决办法
- 鼠标滚轮滚动事件
- KDE鼠标支持滚轮
- dbgrid支持鼠标滚轮
- DBGrid加鼠标滚轮滚动
- vb6 鼠标滚轮支持 插件
- 让DBGRID支持鼠标滚轮
- CrystalReportViewer的鼠标滚轮支持
- MapX系列-- 鼠标滚轮支持
- MSflexgrid支持鼠标滚轮事件
- C#鼠标滚轮处理滚动条滚动
- DataGrid随鼠标滚动
- [愿创]让DBGrid支持鼠标滚轮浏览数据,及去除垂直滚动条!
- 嵌入式工具Qt的安装与使用
- webservice 入门讲解
- python 中open()文件操作的方式
- Excel表格高级筛选教程
- 屏蔽按键,选择
- DataGrid支持鼠标滚轮滚动记录
- 解决附加进程调试时出现"无法命中断点,还没有为文档加载任何符号这个问题"
- TCP/IP协议
- gdb调试(二)断点设置(英文板)
- 重构fS项目心得
- MSflexgrid支持鼠标滚轮事件
- 使用 GNU Libtool 创建库
- 利用asmlib创建oracle asm
- jQuery学习笔记--JqGrid相关操作 方法列表 备忘 重点讲解(超重要)