⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ccontrolflatter.cls

📁 非常有用得编辑器软件源码
💻 CLS
📖 第 1 页 / 共 2 页
字号:
    Case WM_MOUSEMOVE
        If Not m_bMouseOver Then
            m_bMouseOver = True
            DrawMe
            SetTimer m_hWnd, 1, 10, 0
        End If
    Case WM_LBUTTONDOWN
        m_bMouseDown = True
        DrawMe
    Case WM_LBUTTONUP
        m_bMouseDown = False
        DrawMe
    Case WM_TIMER
        OnTimer True
    End Select
End Function

Private Sub DrawMe()
    Dim dwStyle As EDrawStyle
    
    Select Case m_cType
    Case CT_GENERAL
        If m_bDisabled Then
            dwStyle = FC_DRAWDISABLED
        ElseIf m_bFocus Or m_bMouseOver Then
            dwStyle = FC_DRAWRAISED
        Else
            dwStyle = FC_DRAWNORMAL
        End If
        DrawEdit dwStyle
    Case CT_COMBOBOX
        If m_bDisabled Then
            dwStyle = FC_DRAWDISABLED
        ElseIf SendMessageLong(m_hWnd, CB_GETDROPPEDSTATE, 0, 0) <> 0 Then
            dwStyle = FC_DRAWPRESSED
        ElseIf m_bFocus Or m_bMouseOver Then
            dwStyle = FC_DRAWRAISED
        Else
            dwStyle = FC_DRAWNORMAL
        End If
        DrawCombo dwStyle
    Case CT_COMMANDBUTTON
        If m_bDisabled Then
            dwStyle = FC_DRAWDISABLED
        ElseIf m_bMouseDown Then
            dwStyle = FC_DRAWPRESSED
        ElseIf m_bMouseOver Then
            dwStyle = FC_DRAWRAISED
        Else
            dwStyle = FC_DRAWNORMAL
        End If
        DrawCommand dwStyle
    Case CT_SCROLLBAR
        If m_bFocus Or m_bMouseOver Then
            DrawScrollBar FC_DRAWRAISED
        Else
            DrawScrollBar FC_DRAWNORMAL
        End If
    End Select
End Sub

Private Sub DrawCommand(ByVal dwStyle As EDrawStyle)
    Dim rcItem As RECT
    Dim pDC As Long
    
    GetClientRect m_hWnd, rcItem
    pDC = GetDC(m_hWnd)
    
    Select Case dwStyle
    Case FC_DRAWNORMAL, FC_DRAWDISABLED
        Draw3DRect pDC, rcItem, vbButtonFace, vbButtonFace
    Case FC_DRAWRAISED
        Draw3DRect pDC, rcItem, vb3DHighlight, vbButtonShadow
    Case FC_DRAWPRESSED
        Draw3DRect pDC, rcItem, vbButtonShadow, vb3DHighlight
    End Select
    
    InflateRect rcItem, -1, -1
    Draw3DRect pDC, rcItem, vbButtonFace, vbButtonFace
    InflateRect rcItem, -1, -1
    Draw3DRect pDC, rcItem, vbButtonFace, vbButtonFace
    
    DeleteDC pDC
End Sub

Private Sub DrawEdit(ByVal dwStyle As EDrawStyle)
    Dim rcItem As RECT
    Dim pDC As Long
    Dim PT As POINTAPI
    
    GetWindowRect m_hWnd, rcItem
    PT.x = rcItem.Left
    PT.y = rcItem.Top
    ScreenToClient m_hWndParent, PT
    rcItem.Left = PT.x
    rcItem.Top = PT.y
    PT.x = rcItem.Right
    PT.y = rcItem.Bottom
    ScreenToClient m_hWndParent, PT
    rcItem.Right = PT.x
    rcItem.Bottom = PT.y
    
    pDC = GetDC(m_hWndParent)
    
    Select Case dwStyle
    Case FC_DRAWDISABLED
        InflateRect rcItem, 1, 1
        Draw3DRect pDC, rcItem, vb3DHighlight, vb3DHighlight
    Case FC_DRAWNORMAL
        InflateRect rcItem, 2, 2
        Draw3DRect pDC, rcItem, vbButtonFace, vbButtonFace
    Case FC_DRAWRAISED
        InflateRect rcItem, 2, 2
        Draw3DRect pDC, rcItem, vbButtonShadow, vb3DHighlight
    End Select
    
    DeleteDC pDC
End Sub

Private Sub DrawCombo(ByVal dwStyle As EDrawStyle)
    Dim rcItem As RECT
    Dim pDC As Long
    
    GetClientRect m_hWnd, rcItem
    pDC = GetDC(m_hWnd)
    
    Select Case dwStyle
    Case FC_DRAWDISABLED
        Draw3DRect pDC, rcItem, vbButtonFace, vbButtonFace
        InflateRect rcItem, -1, -1
        Draw3DRect pDC, rcItem, vb3DHighlight, vb3DHighlight
    Case FC_DRAWNORMAL
        Draw3DRect pDC, rcItem, vbButtonFace, vbButtonFace
        InflateRect rcItem, -1, -1
        Draw3DRect pDC, rcItem, vbButtonFace, vbButtonFace
    Case Else
        Draw3DRect pDC, rcItem, vbButtonShadow, vb3DHighlight
        InflateRect rcItem, -1, -1
        Draw3DRect pDC, rcItem, vbButtonFace, vbButtonFace
    End Select
    
    InflateRect rcItem, -1, -1
   
    rcItem.Left = rcItem.Right - GetSystemMetrics(SM_CXHTHUMB)
    Draw3DRect pDC, rcItem, vbButtonFace, vbButtonFace
    InflateRect rcItem, -1, -1
    Draw3DRect pDC, rcItem, vbButtonFace, vbButtonFace
    
    Select Case dwStyle
    Case FC_DRAWNORMAL
        rcItem.Top = rcItem.Top - 1
        rcItem.Bottom = rcItem.Bottom + 1
        Draw3DRect pDC, rcItem, vb3DHighlight, vb3DHighlight
        rcItem.Left = rcItem.Left - 1
        rcItem.Right = rcItem.Left
        Draw3DRect pDC, rcItem, vbWindowBackground, &H0
    Case FC_DRAWRAISED
        rcItem.Top = rcItem.Top - 1
        rcItem.Bottom = rcItem.Bottom + 1
        rcItem.Right = rcItem.Right + 1
        Draw3DRect pDC, rcItem, vb3DHighlight, vbButtonShadow
    Case FC_DRAWPRESSED
        rcItem.Left = rcItem.Left - 1
        rcItem.Top = rcItem.Top - 2
        OffsetRect rcItem, 1, 1
        Draw3DRect pDC, rcItem, vbButtonShadow, vb3DHighlight
    End Select
    DeleteDC pDC
End Sub

Private Sub DrawScrollBar(ByVal dwStyle As EDrawStyle)
    Dim rcItem As RECT, rcItemA As RECT, rcItemB As RECT
    Dim pDC As Long
    Dim lButtonSize As Long
    
    GetClientRect m_hWnd, rcItem
    pDC = GetDC(m_hWnd)
    
    Select Case dwStyle
    Case FC_DRAWNORMAL
        Draw3DRect pDC, rcItem, vbButtonFace, vbButtonFace
        InflateRect rcItem, -1, -1
        Draw3DRect pDC, rcItem, vb3DHighlight, vb3DHighlight
        InflateRect rcItem, -1, -1
    Case FC_DRAWRAISED
        Draw3DRect pDC, rcItem, vbButtonShadow, vb3DHighlight
        InflateRect rcItem, -1, -1
        Draw3DRect pDC, rcItem, vbButtonFace, vbButtonFace
    End Select
    
    CopyRect rcItemA, rcItem
    CopyRect rcItemB, rcItem
    lButtonSize = GetSystemMetrics(SM_CXHSCROLL)
        
    Select Case dwStyle
    Case FC_DRAWNORMAL
        rcItemA.Right = lButtonSize
        rcItemB.Left = rcItemB.Right - lButtonSize + 2

        Draw3DRect pDC, rcItemA, vbButtonFace, vbButtonFace
        InflateRect rcItemA, -1, -1
        Draw3DRect pDC, rcItemA, vbButtonFace, vbButtonFace

        Draw3DRect pDC, rcItemB, vbButtonFace, vbButtonFace
        InflateRect rcItemB, -1, -1
        Draw3DRect pDC, rcItemB, vbButtonFace, vbButtonFace
    Case FC_DRAWRAISED
        rcItemA.Right = lButtonSize
        rcItemB.Left = rcItemB.Right - lButtonSize + 1

        Draw3DRect pDC, rcItemA, vbButtonFace, vbButtonFace
        InflateRect rcItemA, -1, -1
        Draw3DRect pDC, rcItemA, vb3DHighlight, vbButtonShadow

        Draw3DRect pDC, rcItemB, vbButtonFace, vbButtonFace
        InflateRect rcItemB, -1, -1
        Draw3DRect pDC, rcItemB, vb3DHighlight, vbButtonShadow
    Case FC_DRAWPRESSED
    
    End Select
    
    DeleteDC pDC
End Sub

Private Function Draw3DRect( _
      ByVal hdc As Long, _
      ByRef rcItem As RECT, _
      ByVal oTopLeftColor As OLE_COLOR, _
      ByVal oBottomRightColor As OLE_COLOR)
    Dim hPen As Long
    Dim hPenOld As Long
    Dim tP As POINTAPI
    
    hPen = CreatePen(PS_SOLID, 1, TranslateColor(oTopLeftColor))
    hPenOld = SelectObject(hdc, hPen)
    MoveToEx hdc, rcItem.Left, rcItem.Bottom - 1, tP
    LineTo hdc, rcItem.Left, rcItem.Top
    LineTo hdc, rcItem.Right - 1, rcItem.Top
    SelectObject hdc, hPenOld
    DeleteObject hPen
    If (rcItem.Left <> rcItem.Right) Then
        hPen = CreatePen(PS_SOLID, 1, TranslateColor(oBottomRightColor))
        hPenOld = SelectObject(hdc, hPen)
        LineTo hdc, rcItem.Right - 1, rcItem.Bottom - 1
        LineTo hdc, rcItem.Left, rcItem.Bottom - 1
        SelectObject hdc, hPenOld
        DeleteObject hPen
    End If
End Function

Private Function TranslateColor(ByVal clr As OLE_COLOR, Optional hPal As Long = 0) As Long
    If OleTranslateColor(clr, hPal, TranslateColor) Then
        TranslateColor = -1
    End If
End Function

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -