龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VB开发 >

实现窗体内部的左右移动

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
分割区的宽度 PrivateConstSPLITTERWIDTH=45 最小移动宽度 PrivateConstHMIN=15 picLeft和picRight的宽度相对于窗体的比例 PrivatePercentAsSingle 正在拖动的标志 PrivateDragFlagAsBoolean 每次拖动后需要重排窗体上
'分割区的宽度
  PrivateConstSPLITTERWIDTH=45
  '最小移动宽度
  PrivateConstHMIN=15
  'picLeft和picRight的宽度相对于窗体的比例
  PrivatePercentAsSingle
  '正在拖动的标志
  PrivateDragFlagAsBoolean
  
  '每次拖动后需要重排窗体上的控件
  PrivateSubRedrawMe()
  DimNewWidthAsSingle
  '忽略窗体缩小的情况
  IfWindowState=vbMinimizedThenExitSub
  NewWidth=(ScaleWidth-SPLITTERWIDTH)*Percent
  Picleft.Move0,0,NewWidth,ScaleHeight
  Picright.MoveNewWidth SPLITTERWIDTH,0,ScaleWidth-NewWidth-SPLITTERWIDTH,ScaleHeight
  EndSub
  
  PrivateSubForm_Load()
  'PicLeft和PicRight的MousePointer=1
  Percent=0.5
  EndSub
  
  PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
  DragFlag=True
  EndSub
  
  PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
  '定义鼠标为vbSizeWE型
  MousePointer=vbSizeWE
  Percent=X/ScaleWidth
  RedrawMe
  EndSub
  
  PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
  DragFlag=False
  MousePointer=0'此行语句实际没有起作用
  EndSub->

精彩图集

赞助商链接