📄 cwinxpcengine.cls
字号:
Else
If Not m_MsgBox Or Not Not m_CommonD Or Not m_TabStrip Or Not m_ListView Then DetachMessage Me, Sender, WM_PAINT
If m_MsgBox Or m_CommonD Then DetachMessage Me, Sender, WM_ACTIVATE
If m_Button Then DetachMessage Me, Sender, WM_SETFOCUS
If m_Button Then DetachMessage Me, Sender, WM_KILLFOCUS
If m_Button Or m_CheckBox Or m_Option Then DetachMessage Me, Sender, WM_KEYDOWN
If m_Button Or m_CheckBox Or m_Option Then DetachMessage Me, Sender, WM_KEYUP
If m_TabStrip Then DetachMessage Me, GetParent(Sender), WM_DRAWITEM
If m_TabStrip Then DetachMessage Me, Sender, WM_PRINTCLIENT
If m_Adodc Or m_Button Or m_CheckBox Or m_Combo Or m_ICombo Or m_ListView Or m_Option Or m_Slider Or m_TabStrip _
Then DetachMessage Me, Sender, WM_MOUSEMOVE
If m_Adodc Or m_Button Or m_CheckBox Or m_Combo Or m_ICombo Or m_ListView Or m_Option Or m_Slider Or m_TabStrip _
Then DetachMessage Me, Sender, WM_TIMER
If m_Adodc Or m_Button Or m_CheckBox Or m_Combo Or m_ICombo Or m_ListView Or m_Option Or m_Slider Or m_TabStrip _
Then DetachMessage Me, Sender, WM_LBUTTONDOWN
If m_Adodc Or m_Button Or m_CheckBox Or m_Combo Or m_ICombo Or m_ListView Or m_Option Or m_Slider Or m_TabStrip _
Then DetachMessage Me, Sender, WM_LBUTTONUP
If m_Picture Or m_Button Or m_CheckBox Or m_ICombo Or m_Option _
Then DetachMessage Me, Sender, WM_ENABLE
If m_Combo Then DetachMessage Me, GetParent(Sender), WM_COMMAND
If m_ICombo Then DetachMessage Me, GetWindow(Sender, GW_CHILD), WM_COMMAND
End If
End Sub
Private Sub DrawControlClass()
If m_hWnd = 0 Then Exit Sub
If m_Combo Or m_ICombo Then
DrawCombo
ElseIf m_Adodc Then
DrawAdodc
ElseIf m_Button Then
DrawButton
ElseIf m_Text Or m_Picture Or m_ListBox Or m_FileListBox Or m_SysListView32 Then
DrawText
ElseIf m_ProgressBar Then
DrawProgressBar
ElseIf m_TabStrip Then
DrawTabStrip
ElseIf m_CheckBox Then
DrawCheckBox
ElseIf m_Option Then
DrawOptionButton
ElseIf m_StatusBar Then
DrawStatusBar
ElseIf m_Slider Then
DrawSlider
ElseIf m_ListView Then
DrawText
DrawListView
ElseIf m_Frame Then
DrawFrame
Else
End If
End Sub
Private Sub DrawButton()
Dim NewButton As cButtonXP
Dim hdc As Long
Dim lState As Long
lState = SendMessageLong(m_hWnd, BM_GETSTATE, 0, 0)
hdc = GetDC(m_hWnd)
Set NewButton = New cButtonXP
NewButton.hdc = IIf(IsWindowEnabled(m_hWnd) = False, hdc, IIf(m_PreDraw = True, TempDC, hdc))
NewButton.hwnd = m_hWnd
NewButton.Enabled = IsWindowEnabled(m_hWnd)
NewButton.Focused = isFocused
NewButton.Over = bOver
NewButton.Down = ((lState And BST_CHECKED) = BST_CHECKED) Or ((lState And BST_PUSHED) = BST_PUSHED)
NewButton.ColorScheme = m_SchemeColor
NewButton.PreDraw = m_PreDraw
NewButton.DrawButtonXP
Set NewButton = Nothing
ReleaseDC m_hWnd, hdc
End Sub
Private Sub DrawText()
Dim RcItem As RECT
Dim T_hWnd As Long
Dim hdc As Long
Dim Point As POINTAPI
Dim NewTextXP As cTextBoxXP
Set NewTextXP = New cTextBoxXP
If m_ListView Or m_SysListView32 Then
T_hWnd = m_hWnd
m_hWnd = GetParent(m_hWnd)
End If
hdc = GetParent(m_hWnd)
GetWindowRect m_hWnd, RcItem
Point.X = RcItem.Left
Point.Y = RcItem.Top
ScreenToClient hdc, Point
RcItem.Left = Point.X
RcItem.Top = Point.Y
Point.X = RcItem.Right
Point.Y = RcItem.Bottom
ScreenToClient hdc, Point
RcItem.Right = Point.X
RcItem.Bottom = Point.Y
InflateRect RcItem, 1, 1
hdc = GetDC(hdc)
NewTextXP.hdc = hdc
NewTextXP.hwnd = m_hWnd
NewTextXP.IBottom = RcItem.Bottom
NewTextXP.ILeft = RcItem.Left
NewTextXP.IRight = RcItem.Right
NewTextXP.ITop = RcItem.Top
NewTextXP.State = IIf(IsWindowEnabled(m_hWnd) = 0, C_Disabled, ButtonState)
NewTextXP.ColorScheme = m_SchemeColor
NewTextXP.DrawTextBoxXP
Set NewTextXP = Nothing
ReleaseDC m_hWnd, hdc
If m_ListView Or m_SysListView32 Then m_hWnd = T_hWnd
End Sub
Private Sub DrawListView()
Dim NewListViewXP As cListViewXP
Dim hdc As Long
Dim RcItem As RECT
Dim i As Long
GetClientRect m_hWnd, RcItem
hdc = GetDC(m_hWnd)
Set NewListViewXP = New cListViewXP
NewListViewXP.hdc = hdc
NewListViewXP.hwnd = m_hWnd
NewListViewXP.ItemFont = MyClassObject.Font.Name
NewListViewXP.ItemItalic = MyClassObject.Font.Italic
NewListViewXP.ItemUnderline = MyClassObject.Font.Underline
NewListViewXP.ItemSize = MyClassObject.Font.Size
NewListViewXP.Width = RcItem.Right
NewListViewXP.IBottom = m_LVIRect.Bottom
NewListViewXP.ILeft = m_LVIRect.Left
NewListViewXP.IRight = m_LVIRect.Right
NewListViewXP.ITop = m_LVIRect.Top
NewListViewXP.State = ButtonState
If m_CurrentItem = -1 Then SendMessageLong m_hWnd, &H1200 + 7, 1, RcItem
NewListViewXP.CleanHeaders RcItem.Bottom
NewListViewXP.DrawDownBorder RcItem.Bottom
If m_CurrentItem <> -1 Then NewListViewXP.DrawListView
GoSub DrawCleanText
Set NewListViewXP = Nothing
ReleaseDC m_hWnd, hdc
Exit Sub
DrawCleanText:
For i = 0 To MyClassObject.ColumnHeaders.count - 1
SendMessageLong m_hWnd, &H1200 + 7, i, RcItem
NewListViewXP.IBottom = RcItem.Bottom
NewListViewXP.ILeft = RcItem.Left
NewListViewXP.IRight = RcItem.Right
NewListViewXP.ITop = RcItem.Top
NewListViewXP.ItemCaption = MyClassObject.ColumnHeaders(i + 1).Text
NewListViewXP.SetTextParams
Next i
Return
End Sub
Private Sub DrawFrame()
Dim NewFrame As cFrameXP
Dim hdc As Long
hdc = GetDC(m_hWnd)
Set NewFrame = New cFrameXP
NewFrame.hwnd = m_hWnd
NewFrame.hdc = hdc
NewFrame.FontItalic = MyClassObject.FontItalic
NewFrame.FontSize = MyClassObject.FontSize
NewFrame.FontUnderline = MyClassObject.FontUnderline
NewFrame.FrameCaption = MyClassObject.Caption
NewFrame.FrameFont = MyClassObject.FontName
NewFrame.Backcolor = MyClassObject.Backcolor
NewFrame.Forecolor = MyClassObject.Forecolor
NewFrame.DrawFrame
Set NewFrame = Nothing
ReleaseDC m_hWnd, hdc
End Sub
Private Sub DrawProgressBar()
Dim NewProgressBarXP As cProgressBarXP
Dim hdc As Long
hdc = GetDC(m_hWnd)
Set NewProgressBarXP = New cProgressBarXP
With NewProgressBarXP
.hdc = hdc
.hwnd = m_hWnd
.Max = MyClassObject.Max
.Min = MyClassObject.Min
.Value = MyClassObject.Value
.Orientation = MyClassObject.Orientation
.Scrolling = MyClassObject.Scrolling
.ColorScheme = m_SchemeColor
.DrawProgressBar
End With
Set NewProgressBarXP = Nothing
ReleaseDC m_hWnd, hdc
End Sub
Private Sub DrawAdodc()
Dim NewAdodc As cAdodc
Dim hdc As Long
hdc = GetDC(m_hWnd)
Set NewAdodc = New cAdodc
NewAdodc.hdc = hdc
NewAdodc.hwnd = m_hWnd
NewAdodc.Enabled = MyClassObject.Enabled
NewAdodc.cButton = m_CurrentButton
NewAdodc.ColorScheme = m_SchemeColor
NewAdodc.Down = IIf(ButtonState = C_Down, True, False)
NewAdodc.DrawAdodc
Set NewAdodc = Nothing
ReleaseDC m_hWnd, hdc
End Sub
Private Sub DrawCheckBox()
Dim NewCheckBoxXP As cCheckBoxXP
Dim hdc As Long
Dim lState As Long
lState = SendMessageLong(m_hWnd, BM_GETSTATE, 0, 0)
hdc = GetDC(m_hWnd)
Set NewCheckBoxXP = New cCheckBoxXP
NewCheckBoxXP.hdc = hdc
NewCheckBoxXP.hwnd = m_hWnd
NewCheckBoxXP.Enabled = IsWindowEnabled(m_hWnd)
NewCheckBoxXP.Over = bOver
NewCheckBoxXP.Down = ((lState And BST_PUSHED) = BST_PUSHED)
NewCheckBoxXP.Value = SendMessageLong(m_hWnd, BM_GETCHECK, 0&, 0&)
NewCheckBoxXP.Alignment = WindowAlignment(m_hWnd)
NewCheckBoxXP.DrawCheckBox
Set NewCheckBoxXP = Nothing
ReleaseDC m_hWnd, hdc
End Sub
Private Sub DrawOptionButton()
Dim NewOptionButtonXP As cOptionButtonXP
Dim hdc As Long
Dim lState As Long
lState = SendMessageLong(m_hWnd, BM_GETSTATE, 0, 0)
hdc = GetDC(m_hWnd)
Set NewOptionButtonXP = New cOptionButtonXP
NewOptionButtonXP.hdc = hdc
NewOptionButtonXP.hwnd = m_hWnd
NewOptionButtonXP.Enabled = IsWindowEnabled(m_hWnd)
NewOptionButtonXP.Over = bOver
NewOptionButtonXP.Down = ((lState And BST_PUSHED) = BST_PUSHED)
NewOptionButtonXP.Value = SendMessageLong(m_hWnd, BM_GETCHECK, 0&, 0&)
NewOptionButtonXP.Alignment = WindowAlignment(m_hWnd)
NewOptionButtonXP.DrawOptionButton
Set NewOptionButtonXP = Nothing
ReleaseDC m_hWnd, hdc
End Sub
Private Sub DrawSlider()
Dim NewSliderXP As cSliderXP
Dim hdc As Long
hdc = GetDC(m_hWnd)
Set NewSliderXP = New cSliderXP
With NewSliderXP
.hdc = hdc
.hwnd = m_hWnd
.Max = MyClassObject.Max
.Min = MyClassObject.Min
.Value = MyClassObject.Value
.Orientation = MyClassObject.Orientation
.TickStyle = MyClassObject.TickStyle
.State = IIf(IsWindowEnabled(m_hWnd) = 0, C_Disabled, IIf(isFocused And ButtonState <> C_Down, C_Focus, ButtonState))
.DrawSlider
End With
Set NewSliderXP = Nothing
ReleaseDC m_hWnd, hdc
End Sub
Private Sub DrawStatusBar()
Dim NewStatusBarXP As cStatusBarXP
Dim hdc As Long
Dim count As Single
hdc = GetDC(m_hWnd)
Set NewStatusBarXP = New cStatusBarXP
NewStatusBarXP.hdc = hdc
NewStatusBarXP.hwnd = m_hWnd
NewStatusBarXP.DrawBar
For count = 1 To MyClassObject.Panels.count
If m_IdeSubClass = False Then MyClassObject.Panels(count).Bevel = 0 '//--- Read Only Property (Disabled if IDE Subclassed = TRUE)
'此处有个Status画线的Bug
NewStatusBarXP.DrawPanel (MyClassObject.Panels(count).Left / 15) + (MyClassObject.Panels(count).Width / 15)
'此处有个Status画线的Bug
Next count
Set NewStatusBarXP = Nothing
ReleaseDC m_hWnd, hdc
End Sub
Private Sub DrawTabStrip()
Dim NewTabXP As cTabStripXP
Dim hdc As Long
hdc = GetDC(m_hWnd)
Set NewTabXP = New cTabStripXP
NewTabXP.hdc = hdc
NewTabXP.hwnd = m_hWnd
NewTabXP.CurrentItem = m_TSINumber
NewTabXP.LastItem = m_TSILNumber
NewTabXP.ItemFont = MyClassObject.Font.Name
NewTabXP.ItemItalic = MyClassObject.Font.Italic
NewTabXP.ItemUnderline = MyClassObject.Font.Underline
NewTabXP.ItemSize = MyClassObject.Font.Size
NewTabXP.ColorScheme = m_SchemeColor
NewTabXP.CleanItem = m_TSCTab
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -