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

📄 apiwindow.cls

📁 几个不错的VB例子
💻 CLS
📖 第 1 页 / 共 5 页
字号:
    HDN_ENDDRAG = (HDN_FIRST - 11)
End Enum

Private Const TVN_FIRST = -400
Public Enum enTreeviewNotificationMessages
    TVN_SELCHANGINGA = (TVN_FIRST - 1)
    TVN_SELCHANGINGW = (TVN_FIRST - 50)
    TVN_SELCHANGEDA = (TVN_FIRST - 2)
    TVN_SELCHANGEDW = (TVN_FIRST - 51)
    TVN_GETDISPINFOA = (TVN_FIRST - 3)
    TVN_GETDISPINFOW = (TVN_FIRST - 52)
    TVN_SETDISPINFOA = (TVN_FIRST - 4)
    TVN_SETDISPINFOW = (TVN_FIRST - 53)
    TVN_ITEMEXPANDINGA = (TVN_FIRST - 5)
    TVN_ITEMEXPANDINGW = (TVN_FIRST - 54)
    TVN_ITEMEXPANDEDA = (TVN_FIRST - 6)
    TVN_ITEMEXPANDEDW = (TVN_FIRST - 55)
    TVN_BEGINDRAGA = (TVN_FIRST - 7)
    TVN_BEGINDRAGW = (TVN_FIRST - 56)
    TVN_BEGINRDRAGA = (TVN_FIRST - 8)
    TVN_BEGINRDRAGW = (TVN_FIRST - 57)
    TVN_DELETEITEMA = (TVN_FIRST - 9)
    TVN_DELETEITEMW = (TVN_FIRST - 58)
    TVN_BEGINLABELEDITA = (TVN_FIRST - 10)
    TVN_BEGINLABELEDITW = (TVN_FIRST - 59)
    TVN_ENDLABELEDITA = (TVN_FIRST - 11)
    TVN_ENDLABELEDITW = (TVN_FIRST - 60)
    TVN_KEYDOWN = (TVN_FIRST - 12)
    TVN_GETINFOTIPA = (TVN_FIRST - 13)
    TVN_GETINFOTIPW = (TVN_FIRST - 14)
    TVN_SINGLEEXPAND = (TVN_FIRST - 15)
End Enum

Private Const TTN_FIRST = -520
Public Enum enToolTipNotificationMessages
    TTN_GETDISPINFOA = (TTN_FIRST - 0)
    TTN_GETDISPINFOW = (TTN_FIRST - 10)
    TTN_SHOW = (TTN_FIRST - 1)
    TTN_POP = (TTN_FIRST - 2)
End Enum

Private Const TCN_FIRST = -550
Public Enum enTabControlNotificationMessages
    TCN_KEYDOWN = (TCN_FIRST - 0)
    TCN_SELCHANGE = (TCN_FIRST - 1)
    TCN_SELCHANGING = (TCN_FIRST - 2)
    TCN_GETOBJECT = (TCN_FIRST - 3)
End Enum

Private Const CDN_FIRST = -601
Public Enum enCommonDialogNotificationMessages
    CDN_INITDONE = (CDN_FIRST - &H0)
    CDN_SELCHANGE = (CDN_FIRST - &H1)
    CDN_FOLDERCHANGE = (CDN_FIRST - &H2)
    CDN_SHAREVIOLATION = (CDN_FIRST - &H3)
    CDN_HELP = (CDN_FIRST - &H4)
    CDN_FILEOK = (CDN_FIRST - &H5)
    CDN_TYPECHANGE = (CDN_FIRST - &H6)
    CDN_INCLUDEITEM = (CDN_FIRST - &H7)
End Enum

Private Const TBN_FIRST = -700
Public Enum enToolbarNotificationMessages
    TBN_GETBUTTONINFOA = (TBN_FIRST - 0)
    TBN_GETBUTTONINFOW = (TBN_FIRST - 20)
    TBN_BEGINDRAG = (TBN_FIRST - 1)
    TBN_ENDDRAG = (TBN_FIRST - 2)
    TBN_BEGINADJUST = (TBN_FIRST - 3)
    TBN_ENDADJUST = (TBN_FIRST - 4)
    TBN_RESET = (TBN_FIRST - 5)
    TBN_QUERYINSERT = (TBN_FIRST - 6)
    TBN_QUERYDELETE = (TBN_FIRST - 7)
    TBN_TOOLBARCHANGE = (TBN_FIRST - 8)
    TBN_CUSTHELP = (TBN_FIRST - 9)
    TBN_DROPDOWN = (TBN_FIRST - 10)
    TBN_GETOBJECT = (TBN_FIRST - 12)
    TBN_HOTITEMCHANGE = (TBN_FIRST - 13)
    TBN_DRAGOUT = (TBN_FIRST - 14)            ''\\ this is sent when the user clicks down on a button then drags off the button
    TBN_DELETINGBUTTON = (TBN_FIRST - 15)     ''\\ uses TBNOTIFY
    TBN_GETDISPINFOA = (TBN_FIRST - 16)       ''\\ This is sent when the  toolbar needs  some display information
    TBN_GETDISPINFOW = (TBN_FIRST - 17)       ''\\ This is sent when the  toolbar needs  some display information
    TBN_GETINFOTIPA = (TBN_FIRST - 18)
    TBN_GETINFOTIPW = (TBN_FIRST - 19)
End Enum

Private Const UDN_FIRST = -721
Public Enum enUpDownNotificationMessages
    UDN_DELTAPOS = (UDN_FIRST - 1)
End Enum

Private Const MCN_FIRST = -750
Public Enum enMonthCalendarNotificationMessages
    MCN_SELCHANGE = (MCN_FIRST + 1)
    MCN_GETDAYSTATE = (MCN_FIRST + 3)
    MCN_SELECT = (MCN_FIRST + 4)
End Enum

Private Const DTN_FIRST = -760
Public Enum enDateTimeNotificationMessages
    DTN_DATETIMECHANGE = (DTN_FIRST + 1)
    DTN_USERSTRINGA = (DTN_FIRST + 2) ''\\ the user has entered a string
    DTN_USERSTRINGW = (DTN_FIRST + 15)
    DTN_WMKEYDOWNA = (DTN_FIRST + 3) ''\\ modify keydown on app format field (X)
    DTN_WMKEYDOWNW = (DTN_FIRST + 16)
    DTN_FORMATA = (DTN_FIRST + 4) ''\\ query display for app format field (X)
    DTN_FORMATW = (DTN_FIRST + 17)
    DTN_FORMATQUERYA = (DTN_FIRST + 5) ''\\ query formatting info for app format field (X)
    DTN_FORMATQUERYW = (DTN_FIRST + 18)
    DTN_DROPDOWN = (DTN_FIRST + 6)   ''\\ MonthCal has dropped down
    DTN_CLOSEUP = (DTN_FIRST + 7)    ''\\ MonthCal is popping up
End Enum

Private Const CBEN_FIRST = -800
Public Enum enComboBoxExtendedNotificationMessages
    CBEN_GETDISPINFO = (CBEN_FIRST - 0)
    CBEN_INSERTITEM = (CBEN_FIRST - 1)
    CBEN_DELETEITEM = (CBEN_FIRST - 2)
    CBEN_BEGINEDIT = (CBEN_FIRST - 4)
    CBEN_ENDEDITA = (CBEN_FIRST - 5)
    CBEN_ENDEDITW = (CBEN_FIRST - 6)
    CBEN_GETDISPINFOW = (CBEN_FIRST - 7)
    CBEN_DRAGBEGINA = (CBEN_FIRST - 8)
    CBEN_DRAGBEGINW = (CBEN_FIRST - 9)
End Enum

Private Const RBN_FIRST = -831
Public Enum enCoolbarNotificationMessages
    RBN_HEIGHTCHANGE = (RBN_FIRST - 0)
    RBN_GETOBJECT = (RBN_FIRST - 1)
    RBN_LAYOUTCHANGED = (RBN_FIRST - 2)
    RBN_AUTOSIZE = (RBN_FIRST - 3)
    RBN_BEGINDRAG = (RBN_FIRST - 4)
    RBN_ENDDRAG = (RBN_FIRST - 5)
    RBN_DELETINGBAND = (RBN_FIRST - 6)       ''\\ Uses NMREBAR
    RBN_DELETEDBAND = (RBN_FIRST - 7)        ''\\ Uses NMREBAR
    RBN_CHILDSIZE = (RBN_FIRST - 8)
End Enum

Private Const SBN_FIRST = -880
Public Enum enStatusBarNotificationMessages
    SBN_SIMPLEMODECHANGE = (SBN_FIRST - 0)
End Enum

Public Enum ButtonMessages
    BM_GETCHECK = &HF0
    BM_SETCHECK = &HF1
    BM_GETSTATE = &HF2
    BM_SETSTATE = &HF3
    BM_SETSTYLE = &HF4
    BM_CLICK = &HF5
    BM_GETIMAGE = &HF6
    BM_SETIMAGE = &HF7
End Enum

Public Enum ButtonStates
     BST_UNCHECKED = &H0
     BST_CHECKED = &H1
     BST_INDETERMINATE = &H2
     BST_PUSHED = &H4
     BST_FOCUS = &H8
End Enum

Private mThreadParent As Long


'\\ Get relative window constants
Public Enum enGetWindow
    GW_HWNDFIRST = 0
    GW_HWNDLAST = 1
    GW_HWNDNEXT = 2
    GW_HWNDPREV = 3
    GW_OWNER = 4
    GW_CHILD = 5
End Enum

'\\ Window Style
' ##ENUMERATION_DESCRIPTION These style bits are combined to define what style elements the _
window that is created with them will have.
Public Enum enWindowStyles
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_BORDER The window has a frame border around it
    WS_BORDER = &H800000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_CAPTION The window has a caption title bar
    WS_CAPTION = &HC00000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_CHILD The window is a child (non top level) window
    WS_CHILD = &H40000000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_CLIPCHILDREN The window cannot draw over other windows that are its children
    WS_CLIPCHILDREN = &H2000000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_CLIPSIBLINGS This window's child windows cannot draw over each other
    WS_CLIPSIBLINGS = &H4000000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_DISABLED The window is disabled and cannot accept imput
    WS_DISABLED = &H8000000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_DLGFRAME The window has a double border but no caption
    WS_DLGFRAME = &H400000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_EX_ACCEPTFILES The window will accept files being dropped on it from Explorer
    WS_EX_ACCEPTFILES = &H10&
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_EX_DLGMODALFRAME The window has a double border and may have a caption
    WS_EX_DLGMODALFRAME = &H1&
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_EX_NOPARENTNOTIFY The window will not send a message to its parent (if any) when it is destroyed
    WS_EX_NOPARENTNOTIFY = &H4&
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_EX_TOPMOST The window will float over non topmost windows
    WS_EX_TOPMOST = &H8&
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_EX_TRANSPARENT The window does not obscure windows behind it
    WS_EX_TRANSPARENT = &H20&
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_EX_TOOLWINDOW The window has a toolbox look (smaller caption bar)
    WS_EX_TOOLWINDOW = &H80&
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_GROUP The window is the first of a group of windows in a dialog box
    WS_GROUP = &H20000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_HSCROLL The window has a horizontal scroll bar
    WS_HSCROLL = &H100000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_MAXIMIZE The window is maximised when first created
    WS_MAXIMIZE = &H1000000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_MAXIMIZEBOX The window has a maximise box
    WS_MAXIMIZEBOX = &H10000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_MINIMIZE The window is minimised when first created
    WS_MINIMIZE = &H20000000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_MINIMIZEBOX The window has a minimise box
    WS_MINIMIZEBOX = &H20000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_OVERLAPPED The window is a standard top level (application) window
    WS_OVERLAPPED = &H0&
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_POPUP The window is a popup type window
    WS_POPUP = &H80000000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_SYSMENU The window has a system menu box
    WS_SYSMENU = &H80000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_TABSTOP The window accepts the focus when tabbed to
    WS_TABSTOP = &H10000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_THICKFRAME The window has a resizeable window style thick border
    WS_THICKFRAME = &H40000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_VISIBLE The window is visible
    WS_VISIBLE = &H10000000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_VSCROLL The window has a vertical scroll bar
    WS_VSCROLL = &H200000
    '\\ New from 95/NT4 onwards
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_EX_MDICHILD The window is an MDI child style window
    WS_EX_MDICHILD = &H40
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_EX_WINDOWEDGE The window has a beveled outer edge
    WS_EX_WINDOWEDGE = &H100
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_EX_CLIENTEDGE The window has a chiselled inner edge
    WS_EX_CLIENTEDGE = &H200
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_EX_CONTEXTHELP The window supports context sensitive help
    WS_EX_CONTEXTHELP = &H400
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_EX_RIGHT Text in this window is right aligned (if WS_EX_RTLREADING is set)
    WS_EX_RIGHT = &H1000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_EX_LEFT Test in this window is left aligned
    WS_EX_LEFT = &H0
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_EX_RTLREADING Arranges text for right to left reading (for Hebrew or Arabic for example)
    WS_EX_RTLREADING = &H2000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_EX_LTRREADING Arranges text for left to right reading
    WS_EX_LTRREADING = &H0
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_EX_LEFTSCROLLBAR Scrollbar on the left hand side (if WS_EX_RTLREADING is set)
    WS_EX_LEFTSCROLLBAR = &H4000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_EX_RIGHTSCROLLBAR Scrollbar on the right hand side
    WS_EX_RIGHTSCROLLBAR = &H0
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_EX_CONTROLPARENT causes child windows of this window to have a tab order
    WS_EX_CONTROLPARENT = &H10000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_EX_STATICEDGE Make sthe window a 3D style frame window
    WS_EX_STATICEDGE = &H20000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_EX_APPWINDOW Minimises to the task bar
    WS_EX_APPWINDOW = &H40000
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_EX_OVERLAPPEDWINDOW Has a raised edge around it like an application window
    WS_EX_OVERLAPPEDWINDOW = (WS_EX_WINDOWEDGE Or WS_EX_CLIENTEDGE)
    ' ##ENUMERATION_MEMBER_DESCRIPTION WS_EX_PALETTEWINDOW Is a floating toolbar or palette style window
    WS_EX_PALETTEWINDOW = (WS_EX_WINDOWEDGE Or WS_EX_TOOLWINDOW Or WS_EX_TOPMOST)
End Enum

'\\ This is in the wParam of WM_POWER and DRV_POWER messages
Public Enum PowerStatusChangeMessages
     PWR_OK = 1
     PWR_FAIL = (-1)
     PWR_SUSPENDREQUEST = 1
     PWR_SUSPENDRESUME = 2
     PWR_CRITICALRESUME = 3
End Enum

'\\ This is in wParam of WM_SIZING messages
Public Enum WindowSizingMessages
     WMSZ_LEFT = 1
     WMSZ_RIGHT = 2
     WMSZ_TOP = 3
     WMSZ_TOPLEFT = 4
     WMSZ_TOPRIGHT = 5
     WMSZ_BOTTOM = 6
     WMSZ_BOTTOMLEFT = 7
     WMSZ_BOTTOMRIGHT = 8
End Enum

'\\ This is in wParam of WM_SIZE messages
Public Enum WindowSizeMessages
     SIZE_RESTORED = 0
     SIZE_MINIMIZED = 1
     SIZE_MAXIMIZED = 2
     SIZE_MAXSHOW = 3
     SIZE_MAXHIDE = 4
End Enum

'\\ Before WM_MOUSEHOVER and WM_MOUSELEAVE messages can be generated for
'\\ a window, the message tracking must be enabled on that window
Public Enum TrackMouseEvents
     TME_HOVER = &H1
     TME_LEAVE = &H2
     TME_QUERY = &H40000000
     TME_CANCEL = &H80000000
End Enum

Private Type TRACKMOUSESTRUCT
    cbSize As Long
    dwFlags As Long '\\ TrackMouseEvents
    hwndTrack As Long '\\ Target window
    dwHoverTime As Long '\\ Mouse hover timeout in milliseconds
End Type

Private Declare Function TrackMouseEvent Lib "user32" (lpTrackMouseStruct As TRACKMOUSESTRUCT) As Long

Public Property Get BorderHeight() As Long

If BorderStyle = vbBSNone Then
    BorderHeight = 0
Else
    If IsWindowStyleSet(WS_THICKFRAME, False) Then
        BorderHeight = APIDispenser.System.Metrics(SM_CXFRAME)
    Else
        BorderHeight = APIDispenser.System.Metrics(SM_CXEDGE)
    End If
End If

End Property
Public Property Get BorderStyle() As FormBorderStyleConstants

Dim bsThis As FormBorderStyleConstants

    'vbSizableToolWindow
    'vbSizable
    'vbFixedToolWindow
    'vbFixedSingle
    'vbFixedDialog

If Not IsWindowStyleSet(WS_BORDER, False) Then
    bsThis = vbBSNone
Else
    If IsWindowStyleSet(WS_EX_TOOLWINDOW, True) Then
        'Window is a tool window
        If IsWindowStyleSet(WS_THICKFRAME, False) Then
            bsThis = vbSizableToolWindow
        Else
            bsThis = vbFixedToolWindow
        End If
    Else
        'Window is not a tool window
        If IsWindowStyleSet(WS_THICKFRAME, False) Then
            bsThis = vbSizable
        Else
            If IsWindowStyleSet(WS_DLGFRAME, False) Then
                bsThis = vbFixedDialog
            Else
                bsThis = vbFixedSingle
            End If
        End If
    End If
End If

BorderStyle = bsThis

End Property

Public Property Get BorderWidth() As Long

⌨️ 快捷键说明

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