📄 apiwindow.cls
字号:
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 + -