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

浏览器

开发平台:

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 = "cUpDown"
  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. Option Explicit
  17. Private Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long
  18. Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
  19.      ByVal hwnd As Long, _
  20.      ByVal wMsg As Long, _
  21.      ByVal wParam As Long, _
  22.      ByVal lParam As Long) As Long
  23. Private Declare Function CreateUpDownControl Lib "comctl32.dll" ( _
  24.      ByVal dwStyle As Long, _
  25.      ByVal x As Long, _
  26.      ByVal y As Long, _
  27.      ByVal cx As Long, _
  28.      ByVal cy As Long, _
  29.      ByVal hParent As Long, _
  30.      ByVal nID As Long, _
  31.      ByVal hInst As Long, _
  32.      ByVal hBuddy As Long, _
  33.      ByVal nUpper As Long, _
  34.      ByVal nLower As Long, _
  35.      ByVal nPos As Long) As Long
  36. Private Const WM_USER As Long = &H400
  37. Private Const WS_CHILD As Long = &H40000000
  38. Private Const WS_VISIBLE As Long = &H10000000
  39. Public Enum UDStyle
  40.     UDS_ALIGNLEFT = &H8
  41.     UDS_ALIGNRIGHT = &H4
  42.     UDS_ARROWKEYS = &H20
  43.     UDS_AUTOBUDDY = &H10
  44.     UDS_HORZ = &H40
  45.     UDS_HOTTRACK = &H100
  46.     UDS_NOTHOUSANDS = &H80
  47.     UDS_SETBUDDYINT = &H2
  48.     UDS_WRAP = &H1
  49.     UDS_DEFAULT = UDS_ARROWKEYS Or UDS_SETBUDDYINT Or UDS_ALIGNRIGHT
  50. End Enum
  51. Private Const UDM_GETACCEL As Long = (WM_USER + 108)
  52. Private Const UDM_GETBASE As Long = (WM_USER + 110)
  53. Private Const UDM_GETBUDDY As Long = (WM_USER + 106)
  54. Private Const UDM_GETPOS As Long = (WM_USER + 104)
  55. Private Const UDM_GETPOS32 As Long = (WM_USER + 114)
  56. Private Const UDM_GETRANGE As Long = (WM_USER + 102)
  57. Private Const UDM_GETRANGE32 As Long = (WM_USER + 112)
  58. Private Const UDM_SETACCEL As Long = (WM_USER + 107)
  59. Private Const UDM_SETBASE As Long = (WM_USER + 109)
  60. Private Const UDM_SETBUDDY As Long = (WM_USER + 105)
  61. Private Const UDM_SETPOS As Long = (WM_USER + 103)
  62. Private Const UDM_SETPOS32 As Long = (WM_USER + 113)
  63. Private Const UDM_SETRANGE As Long = (WM_USER + 101)
  64. Private Const UDM_SETRANGE32 As Long = (WM_USER + 111)
  65. 'local variable(s) to hold property value(s)
  66. Private mvarhwnd As Long 'local copy
  67. 'local variable(s) to hold property value(s)
  68. Private mvarhBuddy As Long 'local copy
  69. Private mvarhParent As Long 'local copy
  70. 'local variable(s) to hold property value(s)
  71. Private mvarUpper As Long 'local copy
  72. Private mvarLower As Long 'local copy
  73. 'local variable(s) to hold property value(s)
  74. Private mvarPos As Long 'local copy
  75. Public Sub Destroy()
  76. Call DestroyWindow(mvarhwnd)
  77. mvarhwnd = 0
  78. End Sub
  79. Public Property Let Pos(ByVal vData As Long)
  80. 'used when assigning a value to the property, on the left side of an assignment.
  81. 'Syntax: X.Pos = 5
  82.     mvarPos = vData
  83. If mvarhwnd <> 0 Then
  84.     Call SendMessage(mvarhwnd, UDM_SETPOS32, 0, mvarPos)
  85. End If
  86. End Property
  87. Public Property Get Pos() As Long
  88. 'used when retrieving value of a property, on the right side of an assignment.
  89. 'Syntax: Debug.Print X.Pos
  90.     Pos = mvarPos
  91. End Property
  92. Public Property Let Lower(ByVal vData As Long)
  93. 'used when assigning a value to the property, on the left side of an assignment.
  94. 'Syntax: X.Lower = 5
  95.     mvarLower = vData
  96. Call SetRage(mvarUpper, mvarLower)
  97. End Property
  98. Public Property Get Lower() As Long
  99. 'used when retrieving value of a property, on the right side of an assignment.
  100. 'Syntax: Debug.Print X.Lower
  101.     Lower = mvarLower
  102. End Property
  103. Public Property Let Upper(ByVal vData As Long)
  104. 'used when assigning a value to the property, on the left side of an assignment.
  105. 'Syntax: X.Upper = 5
  106.     mvarUpper = vData
  107.     Call SetRage(mvarUpper, mvarLower)
  108. End Property
  109. Public Property Get Upper() As Long
  110. 'used when retrieving value of a property, on the right side of an assignment.
  111. 'Syntax: Debug.Print X.Upper
  112.     Upper = mvarUpper
  113. End Property
  114. Public Property Let hParent(ByVal vData As Long)
  115. 'used when assigning a value to the property, on the left side of an assignment.
  116. 'Syntax: X.hParent = 5
  117.     mvarhParent = vData
  118. End Property
  119. Public Property Get hParent() As Long
  120. 'used when retrieving value of a property, on the right side of an assignment.
  121. 'Syntax: Debug.Print X.hParent
  122.     hParent = mvarhParent
  123. End Property
  124. Public Property Let hBuddy(ByVal vData As Long)
  125. 'used when assigning a value to the property, on the left side of an assignment.
  126. 'Syntax: X.hBuddy = 5
  127.     mvarhBuddy = vData
  128. If mvarhwnd <> 0 Then
  129.     Call SendMessage(hwnd, UDM_SETBUDDY, mvarhBuddy, 0)
  130. End If
  131. End Property
  132. Public Property Get hBuddy() As Long
  133. 'used when retrieving value of a property, on the right side of an assignment.
  134. 'Syntax: Debug.Print X.hBuddy
  135.     hBuddy = mvarhBuddy
  136. End Property
  137. Public Property Get hwnd() As Long
  138. 'used when retrieving value of a property, on the right side of an assignment.
  139. 'Syntax: Debug.Print X.hwnd
  140.     hwnd = mvarhwnd
  141. End Property
  142. Public Function Create( _
  143.         Optional custom As Boolean = False, _
  144.         Optional hWin As Long, _
  145.         Optional hBuddy As Long, _
  146.         Optional dwStyle As UDStyle = UDS_DEFAULT, _
  147.         Optional nUpper As Long, _
  148.         Optional nLower As Long, _
  149.         Optional nPos As Long _
  150.         )
  151. If hwnd <> 0 Then Destroy
  152. If Not custom Then
  153.     hWin = mvarhParent
  154.     hBuddy = mvarhBuddy
  155.     nUpper = mvarUpper
  156.     nLower = mvarLower
  157.     nPos = mvarPos
  158. End If
  159.     Dim hUpdown As Long
  160.     Dim cosStyle As Long
  161.     cosStyle = WS_CHILD Or WS_VISIBLE Or dwStyle
  162.     hUpdown = CreateUpDownControl(cosStyle, 0, 0, 0, 0, hWin, 101&, App.hInstance, hBuddy, nUpper, nLower, nPos)
  163.     mvarhwnd = hUpdown
  164. End Function
  165. Public Sub SetRage(nUpper As Long, nLower As Long)
  166. mvarLower = nLower
  167. mvarUpper = nUpper
  168. If mvarhwnd <> 0 Then
  169.     Call SendMessage(mvarhwnd, UDM_SETRANGE32, nLower, nUpper)
  170. End If
  171. End Sub
  172. Private Function MAKELONG(wLow As Long, wHeight As Long) As Long
  173. Dim rtn As Long
  174. rtn = wHeight * &H10000 + wLow
  175. MAKELONG = rtn
  176. End Function
  177. Private Sub Class_Terminate()
  178. If mvarhwnd <> 0 Then Call Destroy
  179. End Sub