窗体分割 好急好急

juror 2003-08-31 03:28:42
就是反窗体分成左右两部分的 可以拉中间的条条改变大小。
如msdn的介面。
大侠拜托!!
...全文
27 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
射天狼 2003-09-02
  • 打赏
  • 举报
回复
Option Explicit

Private Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long

'加三个PICTUREBOX控件,将其中一个作为分隔条,改名为:picSplit
Private Sub Form_Load()
Picture1.Left = 60
Picture1.Top = 60
Picture2.Top = 60
picSplit.Left = Picture1.Left + Picture1.Width + 30
picSplit.Width = 60
picSplit.BorderStyle = 0
Picture2.Left = picSplit.Left + picSplit.Width '+ 50
Picture1.Height = 5700
Picture2.Height = 5700
picSplit.Top = 60
picSplit.Height = 5700
picSplit.MousePointer = vbSizeWE
End Sub

Private Sub picSplit_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
On Error Resume Next
If Button = vbLeftButton Then
SetCapture picSplit.hwnd
picSplit.Tag = x
picSplit.BackColor = &HFF8080
End If
End Sub

Private Sub picSplit_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
On Error Resume Next
If Button = vbLeftButton Then
If picSplit.Left >= (100 - x) And picSplit.Left <= (Me.ScaleWidth - 100 - x) Then picSplit.Left = picSplit.Left + x - CInt(picSplit.Tag)
End If
End Sub

Private Sub picSplit_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
On Error Resume Next
If Button = vbLeftButton Then
Picture1.Width = picSplit.Left - 80
Picture2.Left = picSplit.Left + 50
Picture2.Width = Width - Picture1.Width - 4

picSplit.BackColor = &H8000000F
ReleaseCapture
End If
End Sub
lihonggen0 2003-09-02
  • 打赏
  • 举报
回复
这里有个控件vbsplitter

http://www.csdn.net/cnshare/soft/16/16015.shtm
bigbigbigsoft 2003-09-02
  • 打赏
  • 举报
回复
创建一个Image,设置成splitter的样子,处理三个消息MouseUp, MouseMove, MouseDown
创建一个PictureBox, 名字picSplitter,作为移动splitter的时候的现实,正常情况隐藏,只有拖动splitter的时候出来

Private Sub imgSplitter_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
SizeControls picSplitter.Left
picSplitter.Visible = False '隐藏Picturebox
mbMoving = False ‘移动结束
'这时候可以根据当前splitter的位置设置你的要用spliter控制的控件的大小和位置
End Sub

Private Sub imgSplitter_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
With imgSplitter
picSplitter.Move .Left, .Top, .Width \ 2, .Height - 20 '移动picturebox
End With
picSplitter.Visible = True
mbMoving = True ’移动中
End Sub

Private Sub imgSplitter_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim sglPos As Single

If mbMoving Then
sglPos = x + imgSplitter.Left
If sglPos < sglSplitLimit Then
picSplitter.Left = sglSplitLimit
ElseIf sglPos > Me.Width - sglSplitLimit Then
picSplitter.Left = Me.Width - sglSplitLimit
Else
picSplitter.Left = sglPos
End If
End If
End Sub

这段程序vb6应用程序wizzard产生的
juror 2003-09-01
  • 打赏
  • 举报
回复
最好有原代码的 谢谢了各位
juror 2003-09-01
  • 打赏
  • 举报
回复
不能下载

踏平扶桑 2003-08-31
  • 打赏
  • 举报
回复
这个控件你看一下:)
http://www.csdn.net/cnshare/soft/6/6411.shtm
bigbigbigsoft 2003-08-31
  • 打赏
  • 举报
回复
如果用VB.net,里面就有splitter control
如果用VB6 可以看看app wizzard产生的explorer类型的应用程序模板,用image代替splitter
juror 2003-08-31
  • 打赏
  • 举报
回复
请问要用什么函数。
bbgbianbaogui 2003-08-31
  • 打赏
  • 举报
回复
调用win api

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧