当控件里的图放大一定比例是,会自动有滚动条,此时我想通过mousemove移动滚动条
但没效果,代码如下,各位帮忙看看问题在哪里,tks
代码如下:
Private Sub ImgEdit1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
bx = X
by = Y
Startmove = True
End If
End SubPrivate Sub ImgEdit1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'On Error Resume Next
If Y > ImgEdit1.Top And Y < ImgEdit1.Top + ImgEdit1.Height And ImgEdit1.Height > Screen.Height - 1200 Then '如果鼠标在控件内
VScroll1.Value = (Y - ImgEdit1.Top) / (ImgEdit1.Height) * 100 
End If
If X > ImgEdit1.Left And X < ImgEdit1.Left + ImgEdit1.Width And ImgEdit1.Height > Screen.Height - 1200 Then
HScroll1.Value = (X - ImgEdit1.Left) / (ImgEdit1.Width) * 100
End IfIf Startmove Then HScroll1.Value + X - bx, VScroll1.Value + Y - by
End Submousemove滚动条

解决方案 »

  1.   

    不是要求鼠标的滚轮事件,是mousemove移动滚动条
      

  2.   

    对于系统滚动条,可以用API来实现控制的,不过你说的东西不知是不是用系统滚动条不得而知,所以很难说这样做行不行。但如果是系统滚动条,你可以用GetScrollInfo和SetScrollInfo来取得或设置滚动条信息,具体的百度一下这两个函数就明白了。
      

  3.   

    Private Type SCROLLINFO
         fMask As Long
    End Type
    Private Declare Function GetScrollInfo Lib "user32" (ByVal hwnd As Long, ByVal n As Long, lpScrollInfo As SCROLLINFO) As Long
    Private Const SB_VERT = 1
    Private Const SIF_POS = &H4
    Private Sub Command1_Click()
         Dim si As SCROLLINFO
         Dim strMsg As String
         Dim lngRet As Long
         With si
             .fMask = SIF_POS
             lngRet = GetScrollInfo(ImgEdit1.hwnd, SB_VERT, si) ‘imgedit1为控件名,改为窗体效果都一样
             If lngRet <> 0 Then
                 MsgBox "出现滚动条"
             Else
                 MsgBox "没有滚动条"
             End If
         End With
    End Sub
    运行程序总是“没有滚动条”
      

  4.   

    本帖最后由 bcrun 于 2013-01-28 11:17:39 编辑