找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 4643|回复: 2

使DataGrid支持鼠标滚轮滚动记录

[复制链接]

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

发表于 2009-7-29 00:37:16 | 显示全部楼层 |阅读模式
'<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%D6%A7%B3%D6">支持</span>滚轮<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%CA%F3%B1%EA">鼠标</span><span class="t_tag" onclick="tagshow(event)" href="tag.php?name=API">API</span>---------------------------------<br/>Public Const GWL_WNDPROC = (-4)<br/>Public Const WM_COMMAND = &amp;H111<br/>Public Const WM_MBUTTONDOWN = &amp;H207<br/>Public Const WM_MBUTTONUP = &amp;H208<br/>Public Const WM_MOUSEWHEEL = &amp;H20A<br/>Public Oldwinproc As Long<br/>Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, _<br/>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;ByVal nIndex As Long, ByVal dwNewLong As Long) As Long<br/>Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, _<br/>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long<br/>Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, _<br/>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;ByVal nIndex As Long) As Long<br/>&nbsp;&nbsp;Public Function FlexScroll(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long<br/>&nbsp; &nbsp; '支持滚轮的滚动&nbsp; &nbsp;Yu&nbsp; &nbsp;2004-5-10&nbsp; &nbsp;15:33<br/>&nbsp; &nbsp; Select Case wMsg<br/>&nbsp; &nbsp; Case WM_MOUSEWHEEL<br/>&nbsp; &nbsp; Debug.Print wParam<br/>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;Select Case wParam<br/>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;Case -7864320&nbsp; &nbsp; '向下滚<br/>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;SendKeys "{PGDN}"<br/>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;Case 7864320&nbsp; &nbsp; '向上滚<br/>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;SendKeys "{PGUP}"<br/>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;End Select<br/>&nbsp; &nbsp; End Select<br/>&nbsp; &nbsp; FlexScroll = CallWindowProc(Oldwinproc, hWnd, wMsg, wParam, lParam)<br/>End Function<br/>'支持滚轮鼠标API---------------------------------<br/>'将下列代码写到表格<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%BF%D8%BC%FE">控件</span>的GotFocus事件中&nbsp; &nbsp;<br/>&nbsp;&nbsp;Private&nbsp; &nbsp;Sub&nbsp; &nbsp;控件名称_GotFocus()&nbsp; &nbsp;<br/>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; Oldwinproc&nbsp; &nbsp;=&nbsp; &nbsp;GetWindowLong(Me.hWnd,&nbsp; &nbsp;GWL_WNDPROC)&nbsp; &nbsp;<br/>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; SetWindowLong&nbsp; &nbsp;Me.hWnd,&nbsp; &nbsp;GWL_WNDPROC,&nbsp; &nbsp;AddressOf&nbsp; &nbsp;FlexScroll&nbsp; &nbsp;<br/>&nbsp;&nbsp;End&nbsp; &nbsp;Sub&nbsp; &nbsp;<br/>&nbsp; &nbsp; <br/>&nbsp;&nbsp;'将下列代码写到表格控件的LostFocus事件中&nbsp; &nbsp;<br/>&nbsp;&nbsp;Private&nbsp; &nbsp;Sub&nbsp; &nbsp;控件名称_LostFocus()&nbsp; &nbsp;<br/>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; SetWindowLong&nbsp; &nbsp;Me.hWnd,&nbsp; &nbsp;GWL_WNDPROC,&nbsp; &nbsp;Oldwinproc&nbsp; &nbsp;<br/>&nbsp;&nbsp;End&nbsp; &nbsp;Sub
【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755

275

主题

3019

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17066

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2009-7-30 00:02:36 | 显示全部楼层
<p>支持.</p>
<p>&nbsp;</p>
<p>子类化拦截鼠标滚轮再模拟键盘的PU与PD键.</p>
我就是嗷嗷叫的老马了......

0

主题

2

回帖

0

精华

初来乍到

积分
16
发表于 2010-5-6 18:06:30 | 显示全部楼层
为什么要经常;P
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表