已有23人关注
请问设置列表类控件支持鼠标滚轮,我按照书上的操作怎么不行啊!
发表在VB答疑区 2010-10-27
是否精华
版块置顶:
Module1中的代码
Option Explicit

 '支持滚轮鼠标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
    '支持滚轮的滚动
    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






Private Sub Form_Load()
Adodc1.RecordSource = "SELECT * FROM tb_stock"
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1

End Sub
Private Sub DataGrid1_GotFocus()
    Oldwinproc = GetWindowLong(Me.hWnd, GWL_WNDPROC)
    SetWindowLong Me.hWnd, GWL_WNDPROC, AddressOf FlexScroll
End Sub



请帮忙看看不知道哪里出了问题!
分享到:
精彩评论 3
vbsoldier
学分:0 LV1
2010-10-27
沙发
您好,将
SetWindowLong Me.hWnd, GWL_WNDPROC, AddressOf FlexScroll
改为:
SetWindowLong DataGrid1.hWnd, GWL_WNDPROC, AddressOf FlexScroll
试试。

bj_wang86
学分:0 LV1
TA的每日心情
困困困
2022-12-21 20:13:38
2010-10-27
板凳
按照上面的方法改了还是不行哦!
vb_music
学分:0 LV1
2010-10-28
地板
你好:
    这是这是哪本书那章哪节的例子呢???我可以帮你调试一下子!!!!!
首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照