我想让我的datagrid控件支持鼠标滚轮滚动,看到如下代码:
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
我不太清楚写在床体中的代码写在那个部分,我写在form1_gotfocus中,当我点击datagrid时有错误提示说:Ambiguos name detected:GWL_WNDPROC,
我写在datagrid_gotfocus中,没有什么反映,这是为什么呢?