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

解决方案 »

  1.   

    换Vsflexgrid
    基本不用改代码
      

  2.   

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

  3.   

    以下代码写在模块里面  
    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
      

  4.   

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