VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - 实现窗体内部的左右移动
发表评论(0)作者:不详, 平台:VB6.0+Win98, 阅读:9262, 日期:2001-06-26
实现窗体内部的左右移动
注释:分割区的宽度
Private Const SPLITTERWIDTH = 45
注释:最小移动宽度
Private Const HMIN = 15
注释:picLeft和picRight的宽度相对于窗体的比例
Private Percent As Single
注释:正在拖动的标志
Private DragFlag As Boolean

注释:每次拖动后需要重排窗体上的控件
Private Sub RedrawMe()
Dim NewWidth As Single
注释: 忽略窗体缩小的情况
If WindowState = vbMinimized Then Exit Sub
NewWidth = (ScaleWidth - SPLITTERWIDTH) * Percent
Picleft.Move 0, 0, NewWidth, ScaleHeight
Picright.Move NewWidth + SPLITTERWIDTH, 0, ScaleWidth - NewWidth - SPLITTERWIDTH, ScaleHeight
End Sub

Private Sub Form_Load()
注释:PicLeft和PicRight的MousePointer=1
Percent = 0.5
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
DragFlag = True
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
注释:定义鼠标为vbSizeWE型
MousePointer = vbSizeWE
Percent = X / ScaleWidth
RedrawMe
End Sub

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
DragFlag = False
MousePointer = 0 注释:此行语句实际没有起作用
End Sub