MoveControl.cls
上传用户:davilee3
上传日期:2015-04-22
资源大小:986k
文件大小:3k
源码类别:

浏览器

开发平台:

Visual Basic

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "cMoveControl"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
  15. Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
  16. '---------------------------------------------------------------------------------------
  17. ' Module    : cMoveControl
  18. ' DateTime  : 2005-8-19 15:05
  19. ' Author    : Lingll
  20. ' Purpose   :
  21. '---------------------------------------------------------------------------------------
  22. Option Explicit
  23. Private px&, py&
  24. Private ctrlLeft&, ctrlTop&
  25. Private WithEvents mControl As PictureBox   ' Control
  26. Attribute mControl.VB_VarHelpID = -1
  27. Public Event Move(offsetX&, offsetY&)
  28. Public Event MoveEnd(offsetX&, offsetY&)
  29. 'local variable(s) to hold property value(s)
  30. Private mvarXMove As Boolean 'local copy
  31. Private mvarYMove As Boolean 'local copy
  32. Public Property Set MoveControl(ByVal vData As Control)
  33. 'used when assigning an Object to the property, on the left side of a Set statement.
  34. 'Syntax: Set x.MoveControl = Form1
  35.     Set mControl = vData
  36. End Property
  37. Public Property Get MoveControl() As Control
  38. 'used when retrieving value of a property, on the right side of an assignment.
  39. 'Syntax: Debug.Print X.MoveControl
  40.     Set MoveControl = mControl
  41. End Property
  42. Public Property Let YMove(ByVal vData As Boolean)
  43. 'used when assigning a value to the property, on the left side of an assignment.
  44. 'Syntax: X.YMove = 5
  45.     mvarYMove = vData
  46. End Property
  47. Public Property Get YMove() As Boolean
  48. 'used when retrieving value of a property, on the right side of an assignment.
  49. 'Syntax: Debug.Print X.YMove
  50.     YMove = mvarYMove
  51. End Property
  52. Public Property Let XMove(ByVal vData As Boolean)
  53. 'used when assigning a value to the property, on the left side of an assignment.
  54. 'Syntax: X.XMove = 5
  55.     mvarXMove = vData
  56. End Property
  57. Public Property Get XMove() As Boolean
  58. 'used when retrieving value of a property, on the right side of an assignment.
  59. 'Syntax: Debug.Print X.XMove
  60.     XMove = mvarXMove
  61. End Property
  62. Private Sub Class_Initialize()
  63. mvarXMove = True
  64. mvarYMove = False
  65. End Sub
  66. Private Sub mControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  67. px = X: py = Y
  68. ctrlLeft = mControl.Left: ctrlTop = mControl.Top
  69. mControl.ZOrder
  70. End Sub
  71. Private Sub mControl_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  72. Dim tOffX&, tOffY&
  73. If Button = vbLeftButton Then
  74.     If mvarXMove Then
  75.     tOffX = X - px
  76.     Else
  77.         tOffX = 0
  78.     End If
  79.     
  80.     If mvarYMove Then
  81.         tOffY = Y - py
  82.     Else
  83.         tOffY = 0
  84.     End If
  85.     mControl.Move mControl.Left + tOffX, _
  86.             mControl.Top + tOffY
  87.     RaiseEvent Move(tOffX, tOffY)
  88. End If
  89. End Sub
  90. Public Sub IniMe(nCtrol As Control, Optional nXmove As Boolean = True, Optional nYmove As Boolean = True, Optional nMousePointer = vbDefault)
  91. Set mControl = nCtrol
  92. mControl.MousePointer = nMousePointer
  93. mvarXMove = nXmove
  94. mvarYMove = nYmove
  95. End Sub
  96. Private Sub mControl_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  97. If Button = vbLeftButton Then
  98.     RaiseEvent MoveEnd(mControl.Left - ctrlLeft, mControl.Top - ctrlTop)
  99. End If
  100. End Sub