关于VB的几个问题
解决时间 2021-05-09 03:07
- 提问者网友:抽煙菂渘情少年
- 2021-05-08 03:29
怎么用鼠标点住一个picturebox后 拖动鼠标带动窗口
我说的可能不清楚 就是说点住一个picturebox然后拖动就会带动窗口移动窗口位置
大虾门帮我想一下下 谢谢了~~~
最佳答案
- 五星知识达人网友:woshuo
- 2021-05-08 04:20
呵呵我来回答第二个问题吧,估计楼主是想自己做皮肤吧,VB真的有点古老了,它的picturebox控件只有MouseMove事件,没有MouseOver事件,简单一点就是给整个窗体也添加一个MouseMove事件,在这里面把所有picturebox的图片还原就可以了
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Picture = LoadPicture(xxxxxxx)
End Sub
o
全部回答
- 1楼网友:雪起风沙痕
- 2021-05-08 04:28
Option Explicit
'变量声明
'MoveScreen,布尔型变量,标示窗体是否处于被移动状态
Dim MoveScreen As Boolean
'鼠标位置
Dim MousX As Integer
Dim MousY As Integer
'窗体位置
Dim CurrX As Integer
Dim CurrY As Integer
'“退出”按钮
Private Sub CmdExit_Click()
End
End Sub
'当鼠标在窗体上按下时
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'---------------------------------------------
'参数说明:
'---------------------------------------------
'button 返回一个整数,用来标识按下或释放的是哪一
'个按钮。button 参数的值为相应于左按钮(1)右按钮
'(2),以及中间按钮(4)。
'---------------------------------------------
'shift 返回一个整数,在鼠标按钮被按下或者被释放
'的同时,SHIFT,CTRL,和 ALT 键的状态,返回的shift
'参数值分别为1,2,和 4。指示这些键的状态。
'---------------------------------------------
'x, y 返回一个指定鼠标指针当前位置的数。
'---------------------------------------------
'如果是鼠标左键按下
If Button = 1 Then
'标示为移动状态
MoveScreen = True
'得到鼠标在窗体上的位置(相对与窗体内部坐标)
MousX = X
MousY = Y
End If
End Sub
'当鼠标在窗体上移过时
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'如果处于鼠标左键按下的状态,即MoveScreen = True时
If MoveScreen Then
'计算新的窗体坐标值
'仔细想一下,看看是不是这样
CurrX = Form1.Left - MousX + X
CurrY = Form1.Top - MousY + Y
'移动窗体到新的位置
Form1.Move CurrX, CurrY
End If
'把新的窗体坐标显示出来,是相对于屏幕的坐标
Label3.Caption = CurrX
Label4.Caption = CurrY
'把鼠标点击的位置显示出来,是相对与窗体的坐标
Label7.Caption = MousX
Label8.Caption = MousY
End Sub
'如果鼠标松开,则停止拖动
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
MoveScreen = False
End Sub
这是移动窗体的,只要把form都改成picture,再加上
form1.move picture1.left,pictuer1.top
我要举报
大家都在看
推荐资讯