操作者要求表格要能用滚轮,如何办呀?我的表格都是用mshflexgrid,这不支持滚轮呀?

时间:2022-06-28 05:26:08
操作者要求表格要能用滚轮,如何办呀?我的表格都是用mshflexgrid,这不支持滚轮呀?
可是操作者对这个要求很强烈呀?他们说现在还有哪个软件不支持mouse滚轮呀?太不习惯了,我该如何办好呀?这个对于 vb来讲,真的实现不了吗?
据说 vb目前依然是桌面程序的最多开发工具。 一些经典的程序都是如何做的呢?
谢谢。

8 个解决方案

#1


换Vsflexgrid
基本不用改代码

#2


用子类处理WM_MOUSEWHEEL消息即可实现,可以参考:
http://www.vbzx.net/ArticleView/vbzx_Article_View_519.asp

#3


安装滚轮鼠标驱动后再试。

#4


以下代码写在模块里面  
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  
 
以下代码写在窗体里面  
Private  Sub  MfgMonth_GotFocus()         
       Oldwinproc  =  GetWindowLong(Me.hWnd,  GWL_WNDPROC)  
       SetWindowLong  Me.hWnd,  GWL_WNDPROC,  AddressOf  FlexScroll  
End  Sub  
 
Private  Sub  MfgMonth_LostFocus()  
       SetWindowLong  Me.hWnd,  GWL_WNDPROC,  Oldwinproc  
End  Sub

#5


安装滚轮鼠标驱动后再试。
--------------------
安装哪个品牌的驱动呀?
装驱动真能管事吗?

#6


谁发明的?装鼠标驱动能使msnhflexgrid支持滚轮???:)

#7


呵呵

#8


LG的鼠标驱动的确可以

#1


换Vsflexgrid
基本不用改代码

#2


用子类处理WM_MOUSEWHEEL消息即可实现,可以参考:
http://www.vbzx.net/ArticleView/vbzx_Article_View_519.asp

#3


安装滚轮鼠标驱动后再试。

#4


以下代码写在模块里面  
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  
 
以下代码写在窗体里面  
Private  Sub  MfgMonth_GotFocus()         
       Oldwinproc  =  GetWindowLong(Me.hWnd,  GWL_WNDPROC)  
       SetWindowLong  Me.hWnd,  GWL_WNDPROC,  AddressOf  FlexScroll  
End  Sub  
 
Private  Sub  MfgMonth_LostFocus()  
       SetWindowLong  Me.hWnd,  GWL_WNDPROC,  Oldwinproc  
End  Sub

#5


安装滚轮鼠标驱动后再试。
--------------------
安装哪个品牌的驱动呀?
装驱动真能管事吗?

#6


谁发明的?装鼠标驱动能使msnhflexgrid支持滚轮???:)

#7


呵呵

#8


LG的鼠标驱动的确可以