一个简单的可调整分割条效果示例(VB6.0)
作者:admin 日期:2008-04-10
在程序里需要拖动一个分割条来进行界面布局调整时,用得上这代码.
以前也写过,不过没记录下来.
为了以后要用时不至于临时去写,就记录一下:(我懒呀....
)
[codes=vb]Option Explicit
Private Const AsyncMove As Boolean = False '实时移动控制
Dim mY As Long, AllHei As Long
Private Sub Form_Load()
AllHei = Picture2.Top + Picture2.Height '把大小极限先记录一下
End Sub
Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
mY = Y '鼠标按下时的鼠标坐标
End Sub
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button And vbLeftButton Then
Dim tmpTop As Long
With Label1
tmpTop = .Top + Y - mY '计算应该移动到的坐标
If tmpTop <= Picture1.Top Then tmpTop = Picture1.Top '数值合法化
If tmpTop >= AllHei - .Height Then tmpTop = AllHei - .Height
.Move .Left, tmpTop '先移动"分割条"
If AsyncMove = False Then
Picture1.Height = .Top - Picture1.Top '再移动各控件
Picture2.Top = .Top + .Height
Picture2.Height = AllHei - Picture2.Top
End If
End With
End If
End Sub
Private Sub Label1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If AsyncMove = True Then
With Label1
Picture1.Height = .Top - Picture1.Top '再移动各控件
Picture2.Top = .Top + .Height
Picture2.Height = AllHei - Picture2.Top
End With
End If
End Sub[/codes]
工程打包在此下载:
点击下载此文件
以前也写过,不过没记录下来.
为了以后要用时不至于临时去写,就记录一下:(我懒呀....

[codes=vb]Option Explicit
Private Const AsyncMove As Boolean = False '实时移动控制
Dim mY As Long, AllHei As Long
Private Sub Form_Load()
AllHei = Picture2.Top + Picture2.Height '把大小极限先记录一下
End Sub
Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
mY = Y '鼠标按下时的鼠标坐标
End Sub
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button And vbLeftButton Then
Dim tmpTop As Long
With Label1
tmpTop = .Top + Y - mY '计算应该移动到的坐标
If tmpTop <= Picture1.Top Then tmpTop = Picture1.Top '数值合法化
If tmpTop >= AllHei - .Height Then tmpTop = AllHei - .Height
.Move .Left, tmpTop '先移动"分割条"
If AsyncMove = False Then
Picture1.Height = .Top - Picture1.Top '再移动各控件
Picture2.Top = .Top + .Height
Picture2.Height = AllHei - Picture2.Top
End If
End With
End If
End Sub
Private Sub Label1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If AsyncMove = True Then
With Label1
Picture1.Height = .Top - Picture1.Top '再移动各控件
Picture2.Top = .Top + .Height
Picture2.Height = AllHei - Picture2.Top
End With
End If
End Sub[/codes]
工程打包在此下载:

评论: 2 | 引用: 0 | 查看次数: 1638


我没用LABEL做分割条,而是在窗口上画几个布局的PictureBOX,中间留点缝细,就用那点缝细了


类似嵌入式网页的东东吧