📄 comctl.inc
字号:
; COMCTL32.DLL structures and constants
struc PROPSHEETPAGE
{
.dwSize dd ?
.dwFlags dd ?
.hInstance dd ?
.pszTemplate dd ?
.pszIcon dd ?
.pszTitle dd ?
.pfnDlgProc dd ?
.lParam dd ?
.pfnCallback dd ?
.pcRefParent dd ?
}
struc PROPSHEETHEADER
{
.dwSize dd ?
.dwFlags dd ?
.hwndParent dd ?
.hInstance dd ?
.pszIcon dd ?
.pszCaption dd ?
.nPages dd ?
.pStartPage dd ?
}
struc IMAGEINFO
{
.hbmImage dd ?
.hbmMask dd ?
.Unused1 dd ?
.Unused2 dd ?
.rcImage dd ?
}
struc HDITEM
{
.mask dd ?
.cxy dd ?
.pszText dd ?
.hbm dd ?
.cchTextMax dd ?
.fmt dd ?
.lParam dd ?
}
struc HDLAYOUT
{
.prc dd ?
.pwpos dd ?
}
struc HDHITTESTINFO
{
.pt POINT
.flags dd ?
.iItem dd ?
}
struc HDNOTIFY
{
.hdr NMHDR
.iItem dd ?
.iButton dd ?
.pitem dd ?
}
struc TBBUTTON
{
.iBitmap dd ?
.idCommand dd ?
.fsState db ?
.fsStyle db ?
.dwData dd ?
.iString dd ?
}
struc COLORMAP
{
.from dd ?
.to dd ?
}
struc TBADDBITMAP
{
.hInst dd ?
.nID dd ?
}
struc TBSAVEPARAMS
{
.hkr dd ?
.pszSubKey dd ?
.pszValueName dd ?
}
struc TBREPLACEBITMAP
{
.hInstOld dd ?
.nIDOld dd ?
.hInstNew dd ?
.nIDNew dd ?
.nButtons dd ?
}
struc NMTOOLBAR
{
hdr NMHDR
iItem dd ?
tbButton TBBUTTON
cchText dd ?
pszText dd ?
}
struc REBARINFO
{
.cbSize dd ?
.fMask dd ?
.himl dd ?
}
struc REBARBANDINFO
{
.cbSize dd ?
.fMask dd ?
.fStyle dd ?
.clrFore dd ?
.clrBack dd ?
.lpText dd ?
.cch dd ?
.iImage dd ?
.hwndChild dd ?
.cxMinChild dd ?
.cyMinChild dd ?
.cx dd ?
.hbmBack dd ?
.wID dd ?
}
struc TOOLINFO
{
.cbSize dd ?
.uFlags dd ?
.hwnd dd ?
.uId dd ?
.Rect RECT
.hInst dd ?
.lpszText dd ?
}
struc TTHITTESTINFO
{
.hwnd dd ?
.pt POINT
.ti TOOLINFO
}
struc TOOLTOPTEXT
{
.hdr NMHDR
.lpszText dd ?
.szText rb 80
.hinst dd ?
.uFlags dd ?
}
struc UDACCEL
{
.nSec dd ?
.nInc dd ?
}
struc NMUPDOWN
{
hdr NMHDR
iPos dd ?
iDelta dd ?
}
struc LVITEM
{
.mask dd ?
.iItem dd ?
.iSubItem dd ?
.state dd ?
.stateMask dd ?
.pszText dd ?
.cchTextMax dd ?
.iImage dd ?
.lParam dd ?
}
struc LVFINDINFO
{
.flags dd ?
.psz dd ?
.lParam dd ?
.pt POINT
.vkDirection dd ?
}
struc LVHITTESTINFO
{
.pt POINT
.flags dd ?
.iItem dd ?
}
struc LVCOLUMN
{
.mask dd ?
.fmt dd ?
.cx dd ?
.pszText dd ?
.cchTextMax dd ?
.iSubItem dd ?
}
struc NMLISTVIEW
{
.hdr NMHDR
.iItem dd ?
.iSubItem dd ?
.uNewState dd ?
.uOldState dd ?
.uChanged dd ?
.ptAction POINT
.lParam dd ?
}
struc NMCACHEHINT
{
.hdr NMHDR
.iFrom dd ?
.iTo dd ?
}
struc NMFINDITEM
{
.hdr NMHDR
.iStart dd ?
.lvfi LVFINDINFO
}
struc LVDISPINFO
{
.hdr NMHDR
.item LVITEM
}
struc LVKEYDOWN
{
hdr NMHDR
wVKey dw ?
flags dd ?
}
struc TVITEM
{
.mask dd ?
.hItem dd ?
.state dd ?
.stateMask dd ?
.pszText dd ?
.cchTextMax dd ?
.iImage dd ?
.iSelectedImage dd ?
.cChildren dd ?
.lParam dd ?
}
struc TVINSERTSTRUCT
{
.hParent dd ?
.hInsertAfter dd ?
.item TVITEM
}
struc TVHITTESTINFO
{
.pt POINT
.flags dd ?
.hItem dd ?
}
struc TVSORTCB
{
.hParent dd ?
.lpfnCompare dd ?
.lParam dd ?
}
struc NMTREEVIEW
{
.hdr NMHDR
.action dd ?
.itemOld TVITEM
.itemNew TVITEM
.ptDrag POINT
}
struc TVDISPINFO
{
.hdr NMHDR
.item TVITEM
}
struc TVKEYDOWN
{
.hdr NMHDR
.wVKey dw ?
.flags dd ?
}
struc TCITEMHEADER
{
.mask dd ?
.lpReserved1 dd ?
.lpReserved2 dd ?
.pszText dd ?
.cchTextMax dd ?
.iImage dd ?
}
struc TCITEM
{
.mask dd ?
.lpReserved1 dd ?
.lpReserved2 dd ?
.pszText dd ?
.cchTextMax dd ?
.iImage dd ?
.lParam dd ?
}
struc TCHITTESTINFO
{
.pt POINT
.flags dd ?
}
struc TCKEYDOWN
{
.hdr NMHDR
.wVKey dw ?
.flags dd ?
}
struc MCHITTESTINFO
{
.cbSize dd ?
.pt POINT
.uHit dd ?
.st SYSTEMTIME
}
struc NMSELCHANGE
{
.nmhdr NMHDR
.stSelStart SYSTEMTIME
.stSelEnd SYSTEMTIME
}
struc NMDAYSTATE
{
.nmhdr NMHDR
.stStart SYSTEMTIME
.cDayState dd ?
.prgDayState dd ?
}
struc NMDATETIMECHANGE
{
.nmhdr NMHDR
.dwFlags dd ?
.st SYSTEMTIME
}
struc NMDATETIMESTRING
{
.nmhdr NMHDR
.pszUserString dd ?
.st SYSTEMTIME
.dwFlags dd ?
}
struc NMDATETIMEWMKEYDOWN
{
.nmhdr NMHDR
.nVirtKey dd ?
.pszFormat dd ?
.st SYSTEMTIME
}
struc NMDATETIMEFORMAT
{
.nmhdr NMHDR
.pszFormat dd ?
.st SYSTEMTIME
.pszDisplay dd ?
.szDisplay rb 64
}
struc NMDATETIMEFORMATQUERY
{
.nmhdr NMHDR
.pszFormat dd ?
.szMax SIZE
}
; Common control window classes
HOTKEY_CLASS equ 'msctls_hotkey32'
PROGRESS_CLASS equ 'msctls_progress32'
STATUS_CLASS equ 'msctls_statusbar32'
TRACKBAR_CLASS equ 'msctls_trackbar32'
UPDOWN_CLASS equ 'msctls_updown32'
TOOLTIPS_CLASS equ 'tooltips_class32'
ANIMATE_CLASS equ 'SysAnimate32'
HEADER_CLASS equ 'SysHeader32'
LISTVIEW_CLASS equ 'SysListView32'
TREEVIEW_CLASS equ 'SysTreeView32'
TABCONTROL_CLASS equ 'SysTabControl32'
MONTHCAL_CLASS equ 'SysMonthCal32'
DATETIMEPICK_CLASS equ 'SysDateTimePick32'
TOOLBAR_CLASS equ 'ToolbarWindow32'
REBAR_CLASS equ 'ReBarWindow32'
; Ranges for control message IDs
LVM_FIRST = 1000h
TV_FIRST = 1100h
HDM_FIRST = 1200h
TCM_FIRST = 1300h
MCM_FIRST = 1000h
DTM_FIRST = 1000h
; Ranges for control notification IDs
NM_FIRST = 0
LVN_FIRST = -100
PSN_FIRST = -200
HDN_FIRST = -300
TVN_FIRST = -400
TTN_FIRST = -520
TCN_FIRST = -550
CDN_FIRST = -601
TBN_FIRST = -700
UDN_FIRST = -721
MCN_FIRST = -750
DTN_FIRST = -760
CBEN_FIRST = -800
RBN_FIRST = -831
; Generic notifications
NM_OUTOFMEMORY = NM_FIRST - 1
NM_CLICK = NM_FIRST - 2
NM_DBLCLK = NM_FIRST - 3
NM_RETURN = NM_FIRST - 4
NM_RCLICK = NM_FIRST - 5
NM_RDBLCLK = NM_FIRST - 6
NM_SETFOCUS = NM_FIRST - 7
NM_KILLFOCUS = NM_FIRST - 8
; Common control styles
CCS_TOP = 01h
CCS_NOMOVEY = 02h
CCS_BOTTOM = 03h
CCS_NORESIZE = 04h
CCS_NOPARENTALIGN = 08h
CCS_ADJUSTABLE = 20h
CCS_NODIVIDER = 40h
CCS_VERT = 80h
CCS_LEFT = CCS_VERT or CCS_TOP
CCS_RIGHT = CCS_VERT or CCS_BOTTOM
CCS_NOMOVEX = CCS_VERT or CCS_NOMOVEY
; Owner-drawn control types
ODT_HEADER = 100
ODT_TAB = 101
ODT_LISTVIEW = 102
; Property sheet page flags
PSP_DEFAULT = 0000h
PSP_DLGINDIRECT = 0001h
PSP_USEHICON = 0002h
PSP_USEICONID = 0004h
PSP_USETITLE = 0008h
PSP_HASHELP = 0020h
PSP_USEREFPARENT = 0040h
PSP_USECALLBACK = 0080h
; Property sheet page actions
PSPCB_RELEASE = 1
PSPCB_CREATE = 2
; Property sheet header flags
PSH_DEFAULT = 0000h
PSH_PROPTITLE = 0001h
PSH_USEHICON = 0002h
PSH_USEICONID = 0004h
PSH_PROPSHEETPAGE = 0008h
PSH_MULTILINETABS = 0010h
PSH_WIZARD = 0020h
PSH_USEPSTARTPAGE = 0040h
PSH_NOAPPLYNOW = 0080h
PSH_USECALLBACK = 0100h
PSH_HASHELP = 0200h
PSH_MODELESS = 0400h
; Property sheet actions
PSCB_INITIALIZED = 1
; Property sheet notifications
PSN_SETACTIVE = PSN_FIRST - 0
PSN_KILLACTIVE = PSN_FIRST - 1
PSN_APPLY = PSN_FIRST - 2
PSN_RESET = PSN_FIRST - 3
PSN_HELP = PSN_FIRST - 5
PSN_WIZBACK = PSN_FIRST - 6
PSN_WIZNEXT = PSN_FIRST - 7
PSN_WIZFINISH = PSN_FIRST - 8
PSN_QUERYCANCEL = PSN_FIRST - 9
; Property sheet return values
PSNRET_NOERROR = 0
PSNRET_INVALID = 1
PSNRET_INVALID_NOCHANGEPAGE = 2
; Property sheet messages
PSM_SETCURSEL = WM_USER + 101
PSM_REMOVEPAGE = WM_USER + 102
PSM_ADDPAGE = WM_USER + 103
PSM_CHANGED = WM_USER + 104
PSM_RESTARTWINDOWS = WM_USER + 105
PSM_REBOOTSYSTEM = WM_USER + 106
PSM_CANCELTOCLOSE = WM_USER + 107
PSM_QUERYSIBLINGS = WM_USER + 108
PSM_UNCHANGED = WM_USER + 109
PSM_APPLY = WM_USER + 110
PSM_SETTITLE = WM_USER + 111
PSM_SETTITLEW = WM_USER + 120
PSM_SETWIZBUTTONS = WM_USER + 112
PSM_PRESSBUTTON = WM_USER + 113
PSM_SETCURSELID = WM_USER + 114
PSM_SETFINISHTEXT = WM_USER + 115
PSM_SETFINISHTEXTW = WM_USER + 121
PSM_GETTABCONTROL = WM_USER + 116
PSM_ISDIALOGMESSAGE = WM_USER + 117
; Property sheet buttons
PSBTN_BACK = 0
PSBTN_NEXT = 1
PSBTN_FINISH = 2
PSBTN_OK = 3
PSBTN_APPLYNOW = 4
PSBTN_CANCEL = 5
PSBTN_HELP = 6
PSWIZB_BACK = 1
PSWIZB_NEXT = 2
PSWIZB_FINISH = 4
PSWIZB_DISABLEDFINISH = 8
ID_PSRESTARTWINDOWS = 2
ID_PSREBOOTSYSTEM = ID_PSRESTARTWINDOWS or 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -