会员: 密码:  免费注册 | 忘记密码 | 会员登录 网页功能: 加入收藏 设为首页 网站搜索  
技术文档 > VB文档 > 系统控制
让程序的鼠标支持滚轮
发表日期:2004-07-14 14:43:56作者: 出处:CSDN  

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

返回顶部】 【打印本页】 【关闭窗口

关于我们 / 给我留言 / 版权举报 / 意见建议 / 网站编程QQ群   
Copyright ©2003- 2024 Lihuasoft.net webmaster(at)lihuasoft.net 加载时间 0.00395