📄 delphicommctrl.inc
字号:
TVN_BEGINRDRAGW = TVN_FIRST-57;
TVN_DELETEITEMW = TVN_FIRST-58;
TVN_BEGINLABELEDITW = TVN_FIRST-59;
TVN_ENDLABELEDITW = TVN_FIRST-60;
TVN_GETINFOTIPW = TVN_FIRST-14;
TVN_ITEMEXPANDING = TVN_ITEMEXPANDINGA;
TVN_ITEMEXPANDED = TVN_ITEMEXPANDEDA;
TVN_BEGINDRAG = TVN_BEGINDRAGA;
TVN_BEGINRDRAG = TVN_BEGINRDRAGA;
TVN_DELETEITEM = TVN_DELETEITEMA;
TVN_BEGINLABELEDIT = TVN_BEGINLABELEDITA;
TVN_ENDLABELEDIT = TVN_ENDLABELEDITA;
TVN_GETINFOTIP = TVN_GETINFOTIPA;
TVN_KEYDOWN = TVN_FIRST-12;
TVN_SINGLEEXPAND = TVN_FIRST-15;
TVI_ROOT = $FFFF0000;
TVI_FIRST = $FFFF0001;
TVI_LAST = $FFFF0002;
TVI_SORT = $FFFF0003;
type
PTVItemA = ^TTVItemA;
PTVItemW = ^TTVItemW;
PTVItem = PTVItemA;
tagTVITEMA = packed record
mask: UINT;
hItem: THandle;
state: UINT;
stateMask: UINT;
pszText: PAnsiChar;
cchTextMax: Integer;
iImage: Integer;
iSelectedImage: Integer;
cChildren: Integer;
lParam: LPARAM;
end;
tagTVITEMW = packed record
mask: UINT;
hItem: THandle;
state: UINT;
stateMask: UINT;
pszText: PWideChar;
cchTextMax: Integer;
iImage: Integer;
iSelectedImage: Integer;
cChildren: Integer;
lParam: LPARAM;
end;
tagTVITEM = tagTVITEMA;
_TV_ITEMA = tagTVITEMA;
_TV_ITEMW = tagTVITEMW;
_TV_ITEM = _TV_ITEMA;
TTVItemA = tagTVITEMA;
TTVItemW = tagTVITEMW;
TTVItem = TTVItemA;
TV_ITEMA = tagTVITEMA;
TV_ITEMW = tagTVITEMW;
TV_ITEM = TV_ITEMA;
// only used for Get and Set messages. no notifies
tagTVITEMEXA = packed record
mask: UINT;
hItem: THandle;
state: UINT;
stateMask: UINT;
pszText: PAnsiChar;
cchTextMax: Integer;
iImage: Integer;
iSelectedImage: Integer;
cChildren: Integer;
lParam: LPARAM;
iIntegral: Integer;
end;
tagTVITEMEXW = packed record
mask: UINT;
hItem: THandle;
state: UINT;
stateMask: UINT;
pszText: PWideChar;
cchTextMax: Integer;
iImage: Integer;
iSelectedImage: Integer;
cChildren: Integer;
lParam: LPARAM;
iIntegral: Integer;
end;
tagTVITEMEX = tagTVITEMEXA;
PTVItemExA = ^TTVItemExA;
PTVItemExW = ^TTVItemExW;
PTVItemEx = PTVItemExA;
TTVItemExA = tagTVITEMEXA;
TTVItemExW = tagTVITEMEXW;
TTVItemEx = TTVItemExA;
PNMTreeViewA = ^TNMTreeViewA;
PNMTreeViewW = ^TNMTreeViewW;
PNMTreeView = PNMTreeViewA;
tagNMTREEVIEWA = packed record
hdr: TNMHDR;
action: Integer;
itemOld: TTVItemA;
itemNew: TTVItemA;
ptDrag: TPoint;
end;
tagNMTREEVIEWW = packed record
hdr: TNMHDR;
action: Integer;
itemOld: TTVItemW;
itemNew: TTVItemW;
ptDrag: TPoint;
end;
tagNMTREEVIEW = tagNMTREEVIEWA;
_NM_TREEVIEWA = tagNMTREEVIEWA;
_NM_TREEVIEWW = tagNMTREEVIEWW;
_NM_TREEVIEW = _NM_TREEVIEWA;
TNMTreeViewA = tagNMTREEVIEWA;
TNMTreeViewW = tagNMTREEVIEWW;
TNMTreeView = TNMTreeViewA;
NM_TREEVIEWA = tagNMTREEVIEWA;
NM_TREEVIEWW = tagNMTREEVIEWW;
NM_TREEVIEW = NM_TREEVIEWA;
tagNMCUSTOMDRAWINFO = packed record
hdr: TNMHdr;
dwDrawStage: DWORD;
hdc: HDC;
rc: TRect;
dwItemSpec: DWORD; // this is control specific, but it's how to specify an item. valid only with CDDS_ITEM bit set
uItemState: UINT;
lItemlParam: LPARAM;
end;
PNMCustomDraw = ^TNMCustomDraw;
TNMCustomDraw = tagNMCUSTOMDRAWINFO;
const
// custom draw return flags
// values under 0x00010000 are reserved for global custom draw values.
// above that are for specific controls
CDRF_DODEFAULT = $00000000;
CDRF_NEWFONT = $00000002;
CDRF_SKIPDEFAULT = $00000004;
CDRF_NOTIFYPOSTPAINT = $00000010;
CDRF_NOTIFYITEMDRAW = $00000020;
CDRF_NOTIFYSUBITEMDRAW = $00000020; // flags are the same, we can distinguish by context
CDRF_NOTIFYPOSTERASE = $00000040;
// drawstage flags
// values under = $00010000 are reserved for global custom draw values.
// above that are for specific controls
CDDS_PREPAINT = $00000001;
CDDS_POSTPAINT = $00000002;
CDDS_PREERASE = $00000003;
CDDS_POSTERASE = $00000004;
// the = $000010000 bit means it's individual item specific
CDDS_ITEM = $00010000;
CDDS_ITEMPREPAINT = CDDS_ITEM or CDDS_PREPAINT;
CDDS_ITEMPOSTPAINT = CDDS_ITEM or CDDS_POSTPAINT;
CDDS_ITEMPREERASE = CDDS_ITEM or CDDS_PREERASE;
CDDS_ITEMPOSTERASE = CDDS_ITEM or CDDS_POSTERASE;
CDDS_SUBITEM = $00020000;
// itemState flags
CDIS_SELECTED = $0001;
CDIS_GRAYED = $0002;
CDIS_DISABLED = $0004;
CDIS_CHECKED = $0008;
CDIS_FOCUS = $0010;
CDIS_DEFAULT = $0020;
CDIS_HOT = $0040;
CDIS_MARKED = $0080;
CDIS_INDETERMINATE = $0100;
type
tagNMLVCUSTOMDRAW = packed record
nmcd: TNMCustomDraw;
clrText: COLORREF;
clrTextBk: COLORREF;
iSubItem: Integer; // IE 4.0 and higher
end;
PNMLVCustomDraw = ^TNMLVCustomDraw;
TNMLVCustomDraw = tagNMLVCUSTOMDRAW;
PTVDispInfoA = ^TTVDispInfoA;
PTVDispInfoW = ^TTVDispInfoW;
PTVDispInfo = PTVDispInfoA;
tagTVDISPINFOA = packed record
hdr: TNMHDR;
item: TTVItemA;
end;
tagTVDISPINFOW = packed record
hdr: TNMHDR;
item: TTVItemW;
end;
tagTVDISPINFO = tagTVDISPINFOA;
_TV_DISPINFOA = tagTVDISPINFOA;
_TV_DISPINFOW = tagTVDISPINFOW;
_TV_DISPINFO = _TV_DISPINFOA;
TTVDispInfoA = tagTVDISPINFOA;
TTVDispInfoW = tagTVDISPINFOW;
TTVDispInfo = TTVDispInfoA;
TV_DISPINFOA = tagTVDISPINFOA;
TV_DISPINFOW = tagTVDISPINFOW;
TV_DISPINFO = TV_DISPINFOA;
tagNMMOUSE = packed record
hdr: TNMHdr;
dwItemSpec: DWORD;
dwItemData: DWORD;
pt: TPoint;
dwHitInfo: DWORD; // any specifics about where on the item or control the mouse is
end;
PNMMouse = ^TNMMouse;
TNMMouse = tagNMMOUSE;
type
PTVHitTestInfo = ^TTVHitTestInfo;
TTVHitTestInfo = packed Record
pt: TPoint;
fl: DWORD;
hItem: THandle;
end;
const
cctrl = 'comctl32.dll';
HINST_COMMCTRL = THandle(-1);
CCS_TOP = $00000001;
CCS_NOMOVEY = $00000002;
CCS_BOTTOM = $00000003;
CCS_NORESIZE = $00000004;
CCS_NOPARENTALIGN = $00000008;
CCS_ADJUSTABLE = $00000020;
CCS_NODIVIDER = $00000040;
CCS_VERT = $00000080;
CCS_LEFT = (CCS_VERT or CCS_TOP);
CCS_RIGHT = (CCS_VERT or CCS_BOTTOM);
CCS_NOMOVEX = (CCS_VERT or CCS_NOMOVEY);
PROGRESS_CLASS: array[ 0..17 ] of Char = ('m','s','c','t','l','s','_',
'p','r','o','g','r','e','s','s','3','2',#0);
STATUSCLASSNAME: array[ 0..18 ] of Char = ('m','s','c','t','l','s','_',
's','t','a','t','u','s','b','a','r','3','2',#0);
WC_LISTVIEW: array[0..13] of Char = ('S','y','s','L','i','s','t',
'V','i','e','w','3','2',#0);
TOOLBARCLASSNAME: array[0..15] of Char = ('T','o','o','l','b','a','r',
'W','i','n','d','o','w','3','2',#0 );
TOOLTIPS_CLASS: array[0..16] of Char = ('t','o','o','l','t','i','p','s','_',
'c','l','a','s','s','3','2',#0);
WC_TREEVIEW: array[0..13] of Char = ('S','y','s','T','r','e','e',
'V','i','e','w','3','2',#0);
WC_TABCONTROL: array[0..15] of Char = ('S','y','s','T','a','b','C','o','n','t',
'r','o','l','3','2',#0);
DATETIMEPICK_CLASS: array[ 0..17 ] of Char = (
'S','y','s','D','a','t','e','T','i','m','e','P','i','c','k','3','2',#0 );
TBN_FIRST = 0-700; { toolbar }
TBN_LAST = 0-720;
TBCDRF_NOEDGES = $00010000; // Don't draw button edges
TBCDRF_HILITEHOTTRACK = $00020000; // Use color of the button bk when hottracked
TBCDRF_NOOFFSET = $00040000; // Don't offset button if pressed
TBCDRF_NOMARK = $00080000; // Don't draw default highlight of image/text for TBSTATE_MARKED
TBCDRF_NOETCHEDEFFECT = $00100000; // Don't draw etched effect for disabled items
TB_ENABLEBUTTON = WM_USER + 1;
TB_CHECKBUTTON = WM_USER + 2;
TB_PRESSBUTTON = WM_USER + 3;
TB_HIDEBUTTON = WM_USER + 4;
TB_INDETERMINATE = WM_USER + 5;
TB_MARKBUTTON = WM_USER + 6;
TB_ISBUTTONENABLED = WM_USER + 9;
TB_ISBUTTONCHECKED = WM_USER + 10;
TB_ISBUTTONPRESSED = WM_USER + 11;
TB_ISBUTTONHIDDEN = WM_USER + 12;
TB_ISBUTTONINDETERMINATE = WM_USER + 13;
TB_ISBUTTONHIGHLIGHTED = WM_USER + 14;
TB_SETSTATE = WM_USER + 17;
TB_GETSTATE = WM_USER + 18;
TB_ADDBITMAP = WM_USER + 19;
TB_ADDBUTTONSA = WM_USER + 20;
TB_INSERTBUTTONA = WM_USER + 21;
TB_DELETEBUTTON = WM_USER + 22;
TB_GETBUTTON = WM_USER + 23;
TB_BUTTONCOUNT = WM_USER + 24;
TB_COMMANDTOINDEX = WM_USER + 25;
TB_SAVERESTOREA = WM_USER + 26;
TB_ADDSTRINGA = WM_USER + 28;
TB_GETBUTTONTEXTA = WM_USER + 45;
TBN_GETBUTTONINFOA = TBN_FIRST-0;
TB_GETBUTTONINFOW = WM_USER + 63;
TB_SETBUTTONINFOW = WM_USER + 64;
TB_GETBUTTONINFOA = WM_USER + 65;
TB_SETBUTTONINFOA = WM_USER + 66;
TB_GETBUTTONINFO = TB_GETBUTTONINFOA;
TB_SETBUTTONINFO = TB_SETBUTTONINFOA;
TB_SAVERESTOREW = WM_USER + 76;
TB_ADDSTRINGW = WM_USER + 77;
TB_GETBUTTONTEXTW = WM_USER + 75;
TBN_GETBUTTONINFOW = TBN_FIRST-20;
TB_SAVERESTORE = TB_SAVERESTOREA;
TB_ADDSTRING = TB_ADDSTRINGA;
TB_GETBUTTONTEXT = TB_GETBUTTONTEXTA;
TBN_GETBUTTONINFO = TBN_GETBUTTONINFOA;
TBN_DROPDOWN = TBN_FIRST-10;
TBN_CLOSEUP = TBN_FIRST-11;
TB_CUSTOMIZE = WM_USER + 27;
TB_GETITEMRECT = WM_USER + 29;
TB_BUTTONSTRUCTSIZE = WM_USER + 30;
TB_SETBUTTONSIZE = WM_USER + 31;
TB_SETBITMAPSIZE = WM_USER + 32;
TB_AUTOSIZE = WM_USER + 33;
TB_GETTOOLTIPS = WM_USER + 35;
TB_SETTOOLTIPS = WM_USER + 36;
TB_SETPARENT = WM_USER + 37;
TB_SETROWS = WM_USER + 39;
TB_GETROWS = WM_USER + 40;
TB_SETCMDID = WM_USER + 42;
TB_CHANGEBITMAP = WM_USER + 43;
TB_GETBITMAP = WM_USER + 44;
TB_REPLACEBITMAP = WM_USER + 46;
TB_SETINDENT = WM_USER + 47;
TB_SETIMAGELIST = WM_USER + 48;
TB_GETIMAGELIST = WM_USER + 49;
TB_LOADIMAGES = WM_USER + 50;
TB_GETRECT = WM_USER + 51; { wParam is the Cmd instead of index }
TB_SETHOTIMAGELIST = WM_USER + 52;
TB_GETHOTIMAGELIST = WM_USER + 53;
TB_SETDISABLEDIMAGELIST = WM_USER + 54;
TB_GETDISABLEDIMAGELIST = WM_USER + 55;
TB_SETSTYLE = WM_USER + 56;
TB_GETSTYLE = WM_USER + 57;
TB_GETBUTTONSIZE = WM_USER + 58;
TB_SETBUTTONWIDTH = WM_USER + 59;
TB_SETMAXTEXTROWS = WM_USER + 60;
TB_GETTEXTROWS = WM_USER + 61;
TB_GETOBJECT = WM_USER + 62; // wParam == IID, lParam void **ppv
TB_GETHOTITEM = WM_USER + 71;
TB_SETHOTITEM = WM_USER + 72; // wParam == iHotItem
TB_SETANCHORHIGHLIGHT = WM_USER + 73; // wParam == TRUE/FALSE
TB_GETANCHORHIGHLIGHT = WM_USER + 74;
TB_MAPACCELERATORA = WM_USER + 78; // wParam == ch, lParam int * pidBtn
TB_SETEXTENDEDSTYLE = WM_USER + 84; // For TBSTYLE_EX_*
TB_GETEXTENDEDSTYLE = WM_USER + 85; // For TBSTYLE_EX_*
TB_INSERTBUTTON = TB_INSERTBUTTONA;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -