首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

怎么通过mousemove移动滚动条

2013-03-12 
如何通过mousemove移动滚动条当控件里的图放大一定比例是,会自动有滚动条,此时我想通过mousemove移动滚动

如何通过mousemove移动滚动条
当控件里的图放大一定比例是,会自动有滚动条,此时我想通过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 Sub

Private 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 If

If Startmove Then HScroll1.Value + X - bx, VScroll1.Value + Y - by
End Sub
mousemove 滚动条
[解决办法]
VB不支持鼠标的滚轮事件。
[解决办法]
对于系统滚动条,可以用API来实现控制的,不过你说的东西不知是不是用系统滚动条不得而知,所以很难说这样做行不行。但如果是系统滚动条,你可以用GetScrollInfo和SetScrollInfo来取得或设置滚动条信息,具体的百度一下这两个函数就明白了。
[解决办法]
本帖最后由 bcrun 于 2013-01-28 11:17:39 编辑 GetScrollInfo 的返回值只能确定函数是否调用成功,不能确定滚动条是否存在,你这样用肯定有问题。
这里有 GetScrollInfo 函数详细的解释:
http://baike.baidu.com/view/1034577.htm
还有你的 SCROLLINFO 也有问题,不知你到哪抄的,完全就是个不对版的东西,以下是 SCROLLINFO 结构体
的声明:
Private Type SCROLLINFO
   cbSize As Long
   fMask As Long
   nMin As Long
   nMax As Long
   nPage As Long
   nPos As Long
   nTrackPos As Long
End Type

‘如果你想得到滚动条当前的值可以这么做:
Dim Scroll As SCROLLINFO
Scroll.cbSize = LenB(Scroll.cbSize)
Scroll.fMask = SIF_ALL
GetScrollInfo ImgEdit1.hWnd, SB_VERT, Scroll
Msgbox Scroll.nPos & "/" & Scroll.nMax
' 下面设置滚动条到最后的位置
Scroll.nPos = Scroll.nMax
SetScrollInfo ImgEdit1.hWnd, SB_VERT, Scroll, True


[解决办法]
没用过ImgEdit控件

热点排行