gpt4 book ai didi

vb6 - 通过拖动鼠标滚动图像

转载 作者:行者123 更新时间:2023-12-04 13:20:02 26 4
gpt4 key购买 nike

当我使用水平和垂直滚动条时,我有滚动的图像。但我想像在 Photoshop 中一样通过拖动来滚动图像(使用手动工具并浏览缩放的图像)。在 Visual Basic 6.0 中有什么方法可以这样做吗?我已将鼠标的默认光标更改为手形光标。现在我只想通过拖动图像来滚动。

最佳答案

很简单,您只需要处理包含图像的控件的鼠标事件。我将使用我编写的应用程序中的生产代码逐步引导您完成此完全相同的功能。

MouseDown 开始事件。在这里,您需要检查哪个按钮被按下(如果您想允许仅使用左键、左右键或仅使用右键进行拖动),请将鼠标光标更改为闭合或合拢的手(表示正在进行拖动),并设置一些成员变量来跟踪光标的起始坐标。例子:

Private Sub picBox_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
' When left mouse button is pressed down (initiating a drag)
If Button = 1 Then
' Store the coordinates of the mouse cursor
xpos = x
ypos = y

' Change the cursor to hand grab icon
picBox.MouseIcon = LoadPicture(App.Path & "\Resources\Cursors\grab.ico")
End If
End Sub

然后,您将处理 MouseMove事件,您将在其中进行实际拖动(在图片框内移动图像)。在示例中,我选择简单地在容器 Form 上移动整个图片框控件,而不是在图片框内移动图像。您可能需要在此处更改逻辑,具体取决于表单的布局和您的特定需求。例如,您说您有滚动条——在这种情况下,您需要在此处调整 X 和 Y 滚动条的位置。
Private Sub picBox_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
' When left mouse button is being held down (drag)
If Button = 1 Then
' Drag the picture box around the form
picBox.Move x + (picBox.Left - xpos), y + (picBox.Top - ypos)
End If
End Sub

最后,您需要处理 MouseUp事件,您将通过重置光标来结束拖动:
Private Sub picBox_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
' Stop normal dragging
If Button = 1 Then
' Set the cursor back to the unclapsed hand
picBox.MouseIcon = LoadPicture(App.Path & "\Resources\Cursors\hand.ico")
End If
End Sub

当然,您需要将这些成员变量添加到 Form 类的顶部,以跟踪光标的先前位置(在 x 和 y 坐标中)。像这样简单的事情就可以了:
Private xpos As Long
Private ypos As Long

光标看起来像这样,类似于您在 Adob​​e Acrobat 或 Mac OS 9 中找到的(可能最初是由像 Susan Kare 这样的魔术师绘制的;可能不在公共(public)领域):

关于vb6 - 通过拖动鼠标滚动图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5673133/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com