www.pudn.com > VBkongjian.rar > checkbox.ctl
VERSION 5.00
Object = "{27395F88-0C0C-101B-A3C9-08002B2F49FB}#1.1#0"; "PICCLP32.OCX"
Begin VB.UserControl NiceCheck
AccessKeys = "&H00C0C0FF&"
AutoRedraw = -1 'True
BackColor = &H00E0E0E0&
ClientHeight = 3060
ClientLeft = 0
ClientTop = 0
ClientWidth = 8385
FillStyle = 0 'Solid
ScaleHeight = 3060
ScaleWidth = 8385
ToolboxBitmap = "checkbox.ctx":0000
Begin VB.Timer Timer1
Interval = 10
Left = 240
Top = 960
End
Begin VB.PictureBox p
Appearance = 0 'Flat
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 240
Left = 240
ScaleHeight = 16
ScaleMode = 3 'Pixel
ScaleWidth = 16
TabIndex = 1
Top = 120
Width = 240
End
Begin PicClip.PictureClip pc
Index = 0
Left = 120
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":0312
End
Begin PicClip.PictureClip pc
Index = 1
Left = 360
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":1BC4
End
Begin PicClip.PictureClip pc
Index = 2
Left = 600
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":3476
End
Begin PicClip.PictureClip pc
Index = 3
Left = 840
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":4D28
End
Begin PicClip.PictureClip pc
Index = 4
Left = 1080
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":65DA
End
Begin PicClip.PictureClip pc
Index = 5
Left = 1320
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":7E8C
End
Begin PicClip.PictureClip pc
Index = 6
Left = 1560
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":973E
End
Begin PicClip.PictureClip pc
Index = 7
Left = 1800
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":AFF0
End
Begin PicClip.PictureClip pc
Index = 8
Left = 2040
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":C8A2
End
Begin PicClip.PictureClip pc
Index = 9
Left = 2280
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":E154
End
Begin PicClip.PictureClip pc
Index = 10
Left = 2520
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":FA06
End
Begin PicClip.PictureClip pc
Index = 11
Left = 2760
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":112B8
End
Begin PicClip.PictureClip pc
Index = 12
Left = 3000
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":12B6A
End
Begin PicClip.PictureClip pc
Index = 13
Left = 3240
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":1441C
End
Begin PicClip.PictureClip pc
Index = 15
Left = 3720
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":15CCE
End
Begin PicClip.PictureClip pc
Index = 14
Left = 3480
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":17580
End
Begin PicClip.PictureClip pc
Index = 16
Left = 3960
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":18E32
End
Begin PicClip.PictureClip pc
Index = 17
Left = 4200
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":1A6E4
End
Begin PicClip.PictureClip pc
Index = 18
Left = 4440
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":1BF96
End
Begin PicClip.PictureClip pc
Index = 19
Left = 4680
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":1D848
End
Begin PicClip.PictureClip pc
Index = 20
Left = 4920
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":1F0FA
End
Begin PicClip.PictureClip pc
Index = 21
Left = 5160
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":209AC
End
Begin PicClip.PictureClip pc
Index = 22
Left = 5400
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":2225E
End
Begin PicClip.PictureClip pc
Index = 23
Left = 5640
Top = 480
_ExtentX = 344
_ExtentY = 4128
_Version = 393216
Rows = 12
Picture = "checkbox.ctx":23B10
End
Begin VB.Label lbl
Appearance = 0 'Flat
AutoSize = -1 'True
BackColor = &H80000005&
BackStyle = 0 'Transparent
Caption = "Check1"
ForeColor = &H80000008&
Height = 180
Left = 480
TabIndex = 0
Top = 120
Width = 540
End
End
Attribute VB_Name = "NiceCheck"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINT_API) As Long
Private Declare Function ScreenToClient Lib "user32" (ByVal hWnd As Long, lpPoint As POINT_API) As Long
Private Type POINT_API
X As Long
Y As Long
End Type
Public Enum State
Unchecked = 0
Checked = 1
Mixed = 2
End Enum
Dim m_Font As Font
Dim m_Value As State
Dim m_BackColor As OLE_COLOR
Dim m_ForeColor As OLE_COLOR
Const m_def_Value = State.Unchecked
Const m_def_BackColor = &HE0E0E0
Const m_def_ForeColor = vbBlack
Event Click()
Attribute Click.VB_UserMemId = -600
Event KeyDown(KeyCode As Integer, Shift As Integer)
Attribute KeyDown.VB_UserMemId = -602
Event KeyPress(KeyAscii As Integer)
Attribute KeyPress.VB_UserMemId = -603
Event KeyUp(KeyCode As Integer, Shift As Integer)
Attribute KeyUp.VB_UserMemId = -604
Event MouseOut()
Event MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Attribute MouseDown.VB_UserMemId = -605
Event MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Attribute MouseMove.VB_UserMemId = -606
Event MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Attribute MouseUp.VB_UserMemId = -607
'缺省属性值:
Const m_def_SkinIdx = 0
'属性变量:
Dim m_SkinIdx As Integer
Private Sub lbl_Change()
UserControl_Resize
End Sub
Private Sub lbl_Click()
Call UserControl_Click
End Sub
Private Sub lbl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Call UserControl_MouseDown(Button, Shift, X, Y)
End Sub
Private Sub lbl_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Call UserControl_MouseMove(Button, Shift, lbl.Left, lbl.Top)
End Sub
Private Sub lbl_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Call UserControl_MouseUp(Button, Shift, X, Y)
End Sub
Private Sub p_Click()
UserControl_Click
End Sub
Private Sub p_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Call UserControl_MouseDown(Button, Shift, X, Y)
End Sub
Private Sub p_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Call UserControl_MouseMove(Button, Shift, X, Y)
End Sub
Private Sub p_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Call UserControl_MouseUp(Button, Shift, X, Y)
End Sub
Private Sub Timer1_Timer()
Dim pnt As POINT_API
UserControl.ScaleMode = 3
GetCursorPos pnt
ScreenToClient UserControl.hWnd, pnt
If pnt.X < UserControl.ScaleLeft Or _
pnt.Y < UserControl.ScaleTop Or _
pnt.X > (UserControl.ScaleLeft + UserControl.ScaleWidth) Or _
pnt.Y > (UserControl.ScaleTop + UserControl.ScaleHeight) Then
define_pic
Timer1.Enabled = False
RaiseEvent MouseOut
End If
End Sub
Private Sub UserControl_Click()
RaiseEvent Click
If Value = Checked Then
Value = Unchecked
ElseIf Value = Unchecked Then
Value = Checked
ElseIf Value = Mixed Then
Value = Unchecked
End If
define_pic
End Sub
Private Sub UserControl_Initialize()
define_pic
UserControl_Resize
UserControl.BackColor = m_BackColor
'SavePicture pc(m_SkinIdx).Picture, "c:\a.bmp"
End Sub
Public Property Get Enabled() As Boolean
Attribute Enabled.VB_ProcData.VB_Invoke_Property = ";Behavior"
Attribute Enabled.VB_UserMemId = -514
Enabled = UserControl.Enabled
End Property
Public Property Let Enabled(ByVal New_Enabled As Boolean)
UserControl.Enabled() = New_Enabled
If Enabled = False Then
enabled_pic
Else: define_pic
End If
If Enabled = True Then lbl.ForeColor = m_ForeColor Else lbl.ForeColor = RGB(161, 161, 146)
End Property
Private Sub UserControl_InitProperties()
Caption = Ambient.DisplayName
Enabled = True
Value = Unchecked
Set Font = UserControl.Ambient.Font
BackColor = m_def_BackColor
ForeColor = m_def_ForeColor
m_SkinIdx = m_def_SkinIdx
End Sub
Private Sub UserControl_KeyDown(KeyCode As Integer, Shift As Integer)
RaiseEvent KeyDown(KeyCode, Shift)
End Sub
Private Sub UserControl_KeyPress(KeyAscii As Integer)
RaiseEvent KeyPress(KeyAscii)
End Sub
Private Sub UserControl_KeyUp(KeyCode As Integer, Shift As Integer)
RaiseEvent KeyUp(KeyCode, Shift)
End Sub
Private Sub UserControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Enabled = True Then
If Value = Checked Then
p.Picture = pc(m_SkinIdx).GraphicCell(6)
ElseIf Value = Mixed Then
p.Picture = pc(m_SkinIdx).GraphicCell(10)
ElseIf Value = Unchecked Then
p.Picture = pc(m_SkinIdx).GraphicCell(2)
End If
End If
RaiseEvent MouseDown(Button, Shift, X, Y)
End Sub
Private Sub UserControl_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Timer1.Enabled = True
If X >= 0 And Y >= 0 And _
X <= UserControl.ScaleWidth And Y <= UserControl.ScaleHeight Then
If Button = vbLeftButton Then
If Enabled = True Then
If Value = Checked Then
p.Picture = pc(m_SkinIdx).GraphicCell(6)
ElseIf Value = Mixed Then
p.Picture = pc(m_SkinIdx).GraphicCell(10)
ElseIf Value = Unchecked Then
p.Picture = pc(m_SkinIdx).GraphicCell(2)
End If
End If
Else
If Enabled = True Then
If Value = Checked Then
p.Picture = pc(m_SkinIdx).GraphicCell(5)
ElseIf Value = Mixed Then
p.Picture = pc(m_SkinIdx).GraphicCell(9)
ElseIf Value = Unchecked Then
p.Picture = pc(m_SkinIdx).GraphicCell(1)
End If
End If
End If
End If
RaiseEvent MouseMove(Button, Shift, X, Y)
End Sub
Private Sub UserControl_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
RaiseEvent MouseUp(Button, Shift, X, Y)
End Sub
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
Value = PropBag.ReadProperty("Value", m_def_Value)
Caption = PropBag.ReadProperty("Caption", Ambient.DisplayName)
Enabled = PropBag.ReadProperty("Enabled", True)
Set Font = PropBag.ReadProperty("Font", UserControl.Ambient.Font)
BackColor = PropBag.ReadProperty("BackColor", m_def_BackColor)
ForeColor = PropBag.ReadProperty("ForeColor", m_def_ForeColor)
m_SkinIdx = PropBag.ReadProperty("SkinIdx", m_def_SkinIdx)
End Sub
Private Sub UserControl_Resize()
UserControl.ScaleMode = 1
p.Left = 0
p.Top = 0
lbl.Height = UserControl.Height + 100
lbl.Width = UserControl.Width
lbl.Top = p.Height / 2 - 100
lbl.Left = p.Width + 50
UserControl.Height = p.Height
End Sub
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty("Font", m_Font, UserControl.Ambient.Font)
Call PropBag.WriteProperty("Value", m_Value, m_def_Value)
Call PropBag.WriteProperty("Caption", lbl.Caption, Ambient.DisplayName)
Call PropBag.WriteProperty("Enabled", UserControl.Enabled, True)
Call PropBag.WriteProperty("BackColor", m_BackColor, m_def_BackColor)
Call PropBag.WriteProperty("ForeColor", m_ForeColor, m_def_ForeColor)
Call PropBag.WriteProperty("SkinIdx", m_SkinIdx, m_def_SkinIdx)
End Sub
Public Property Get Value() As State
Value = m_Value
End Property
Public Property Let Value(ByVal vNewValue As State)
m_Value = vNewValue
define_pic
PropertyChanged "Value"
End Property
Public Property Get Caption() As String
Attribute Caption.VB_ProcData.VB_Invoke_Property = ";Appearance"
Attribute Caption.VB_UserMemId = -518
Caption = lbl.Caption
End Property
Public Property Let Caption(ByVal vNewCaption As String)
lbl.Caption() = vNewCaption
Call UserControl_Resize
PropertyChanged "Caption"
End Property
Public Property Get Font() As Font
Attribute Font.VB_ProcData.VB_Invoke_Property = ";Font"
Attribute Font.VB_UserMemId = -512
Set Font = m_Font
End Property
Public Property Set Font(ByVal vNewFont As Font)
Set m_Font = vNewFont
Set UserControl.Font = vNewFont
Set lbl.Font = m_Font
Call UserControl_Resize
PropertyChanged "Font"
End Property
Private Function define_pic()
If Enabled = True Then
If Value = Checked Then
p.Picture = pc(m_SkinIdx).GraphicCell(4)
ElseIf Value = Mixed Then
p.Picture = pc(m_SkinIdx).GraphicCell(8)
ElseIf Value = Unchecked Then
p.Picture = pc(m_SkinIdx).GraphicCell(0)
End If
Else: enabled_pic
End If
End Function
Private Function enabled_pic()
If Value = Checked Then
p.Picture = pc(m_SkinIdx).GraphicCell(7)
ElseIf Value = Mixed Then
p.Picture = pc(m_SkinIdx).GraphicCell(11)
ElseIf Value = Unchecked Then
p.Picture = pc(m_SkinIdx).GraphicCell(3)
End If
End Function
Public Property Get BackColor() As OLE_COLOR
Attribute BackColor.VB_ProcData.VB_Invoke_Property = ";Appearance"
Attribute BackColor.VB_UserMemId = -501
BackColor = m_BackColor
End Property
Public Property Let BackColor(ByVal New_BackColor As OLE_COLOR)
m_BackColor = New_BackColor
PropertyChanged "BackColor"
UserControl.BackColor = m_BackColor
End Property
Public Property Get ForeColor() As OLE_COLOR
Attribute ForeColor.VB_ProcData.VB_Invoke_Property = ";Appearance"
Attribute ForeColor.VB_UserMemId = -513
ForeColor = m_ForeColor
End Property
Public Property Let ForeColor(ByVal New_ForeColor As OLE_COLOR)
m_ForeColor = New_ForeColor
PropertyChanged "ForeColor"
If Enabled = True Then lbl.ForeColor = m_ForeColor Else lbl.ForeColor = RGB(161, 161, 146)
End Property
'注意!不要删除或修改下列被注释的行!
'MemberInfo=7,0,0,0
Public Property Get Style() As MnuStyle
Attribute Style.VB_Description = "样式"
SkinIdx = m_SkinIdx
End Property
Public Property Let Style(ByVal New_SkinIdx As MnuStyle)
m_SkinIdx = New_SkinIdx
define_pic
PropertyChanged "SkinIdx"
End Property