注册 登录
编程论坛 VB6论坛

mshflexgrid模拟鼠标滚轮没反应。

m446781380 发布于 2023-10-13 10:55, 1292 次点击
前段时间采用代码解决了mshflexgrid鼠标滚轮的功能,能够正常使用。今天电脑加了局域网之后,该功能不能用了。但是别的电脑还正常能使用。请大神帮忙看看,可能是哪里出了问题。程序已经重新安装过,还是这样。
代码如下:
程序代码:

Option Explicit
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 "{down}"
        Case 7864320   '向上滚
            SendKeys "{UP}"
        End Select
               
    End Select
    FlexScroll = CallWindowProc(Oldwinproc, hWnd, wMsg, wParam, lParam)
End Function


程序代码:

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

Private Sub MSHFlexGrid1_LostFocus()
SetWindowLong Me.hWnd, GWL_WNDPROC, Oldwinproc
End Sub
6 回复
#2
约定的童话2023-10-13 12:40
软件放在哪?别的电脑指的是局域网中其他的电脑还是其他单独的电脑?
#3
m4467813802023-10-13 16:25
回复 2楼 约定的童话
同样的软件,安装在了局域网内不同电脑上,除了我的电脑以外,其他几台电脑上安装的都正常。我的电脑在加入局域网前鼠标滚轮的功能是可以用的,现在不能用了。
另外,我测试了安装文件,将其安装在局域网外的其他电脑上,功能又是正常的。
#4
约定的童话2023-10-14 07:11
回复 3楼 m446781380
这么玄乎的吗?电脑是不是改了哪里导致?注册表?
#5
m4467813802023-10-15 16:08
回复 4楼 约定的童话
问题就在这儿,我一直查不出问题到底出在哪里。
同事的电脑,也是在软件正常使用的情况下,加入的局域网,然后功能一切正常。。
我的电脑就单单这个功能不能使用,其他功能也正常。然后我还重装了系统。不加入局域网的情况下,鼠标滚轮是正常的,但是一加入之后又不行了。
#6
m4467813802023-10-31 14:06
还有哪位大神能帮忙看看,估计一下问题到底出在哪里
#7
m4467813802023-10-31 14:07
回复 4楼 约定的童话
我再次重装了系统。在加入域网之前,功能是正常的。加入之后,鼠标滚轮对mshflexgird控件就不管用了。整个软件中也没有写任何修改注册表的代码。
1