Unit CommCtrlEx

Classes

Functions

TreeView_GetInsertMarkColor -
TreeView_GetItemHeight - ------------------------------------------------------------------------------
TreeView_GetScrollTime -
TreeView_InsertItem -
TreeView_SetBorder -
TreeView_SetInsertMark -
TreeView_SetInsertMarkColor -
TreeView_SetItemHeight -
TreeView_SetScrollTime -
TreeView_SetTextColor -

Types

PNMCustomDraw
PNMTVCustomDraw
PNMTVGetInfoTip
PNMTVGetInfoTipA
PNMTVGetInfoTipW
TNMCustomDraw
TNMTVCustomDraw
TNMTVGetInfoTip
TNMTVGetInfoTipA
TNMTVGetInfoTipW
TTVInsertStruct
TTVInsertStructA
TTVInsertStructW
TTVItemEx
TTVItemExA
TTVItemExW

Constants

CDDS_ITEM
CDDS_ITEMPOSTERASE
CDDS_ITEMPOSTPAINT
CDDS_ITEMPREERASE
CDDS_ITEMPREPAINT
CDDS_POSTERASE
CDDS_POSTPAINT
CDDS_PREERASE
CDDS_PREPAINT
CDDS_SUBITEM
CDIS_CHECKED
CDIS_DEFAULT
CDIS_DISABLED
CDIS_FOCUS
CDIS_GRAYED
CDIS_HOT
CDIS_INDETERMINATE
CDIS_MARKED
CDIS_SELECTED
CDRF_DODEFAULT
CDRF_NEWFONT
CDRF_NOTIFYITEMDRAW
CDRF_NOTIFYITEMERASE
CDRF_NOTIFYPOSTERASE
CDRF_NOTIFYPOSTPAINT
CDRF_NOTIFYSUBITEMDRAW
CDRF_SKIPDEFAULT
NM_CHAR
NM_CUSTOMDRAW
NM_HOVER
NM_KEYDOWN
NM_NCHITTEST
NM_RELEASEDCAPTURE
NM_SETCURSOR
TVCDRF_NOIMAGES
TVGN_LASTVISIBLE
TVIF_INTEGRAL
TVIS_CHECKED
TVIS_EXPANDPARTIAL
TVM_GETINSERTMARKCOLOR
TVM_GETITEMHEIGHT
TVM_GETSCROLLTIME
TVM_SETBORDER
TVM_SETINSERTMARK
TVM_SETINSERTMARKCOLOR
TVM_SETITEMHEIGHT
TVM_SETSCROLLTIME
TVM_SETTEXTCOLOR
TVN_GETINFOTIP
TVN_GETINFOTIPA
TVN_GETINFOTIPW
TVN_SINGLEEXPAND
TVSBF_XBORDER
TVSBF_YBORDER
TVS_CHECKBOXES
TVS_FULLROWSELECT
TVS_INFOTIP
TVS_NOSCROLL
TVS_NOTOOLTIPS
TVS_SINGLEEXPAND
TVS_TRACKSELECT

Variables


Functions


function TreeView_GetInsertMarkColor(hwnd: HWND): COLORREF;


function TreeView_GetItemHeight(hwnd: HWND): SHORT;

------------------------------------------------------------------------------

function TreeView_GetScrollTime(hwnd: HWND): UINT;


function TreeView_InsertItem(hwnd: HWND; const lpis: TTVInsertStruct): HTreeItem;


function TreeView_SetBorder(hwnd: HWND; dwFlags: Word; xBorder, yBorder: Word): BOOL;


function TreeView_SetInsertMark(hwnd: HWND; htiInsert: HTREEITEM; fAfter: Boolean): BOOL;


function TreeView_SetInsertMarkColor(hwnd: HWND; clr: COLORREF): COLORREF;


function TreeView_SetItemHeight(hwnd: HWND; const cyItem: SHORT): Bool;


function TreeView_SetScrollTime(hwnd: HWND; uTime: UINT): BOOL;


function TreeView_SetTextColor(hwnd: HWND; clr: COLORREF): BOOL;


Types


PNMCustomDraw = ^TNMCustomDraw

PNMTVCustomDraw = ^TNMTVCustomDraw
item specific data
PNMTVGetInfoTip  = ^TNMTVGetInfoTip

PNMTVGetInfoTipA = ^TNMTVGetInfoTipA
same as the Level property in TTreeNTNode
PNMTVGetInfoTipW = ^TNMTVGetInfoTipW

TNMCustomDraw = record
hdr : TNMHdr;
dwDrawStage : DWORD;
hdc : HDC;
rc : TRect;
dwItemSpec : DWORD;
uItemState : UINT;
lItemlParam : LPARAM;
end;

TNMTVCustomDraw = record
nmcd : TNMCustomDraw;
clrText : COLORREF;
clrTextBk : COLORREF;
iLevel : Integer;
end;

TNMTVGetInfoTip  = TNMTVGetInfoTipA

TNMTVGetInfoTipA = record
hdr : TNMHdr;
pszText : PChar;
cchTextMax : Integer;
hItem : HTREEITEM;
lParam : LPARAM;
end;

TNMTVGetInfoTipW = record
hdr : TNMHdr;
pszText : PWideChar;
cchTextMax : Integer;
hItem : HTREEITEM;
lParam : LPARAM;
end;

TTVInsertStruct  = TTVInsertStructA

TTVInsertStructA = record
hParent : HTREEITEM;
hInsertAfter : HTREEITEM;
end;

TTVInsertStructW = record
hParent : HTREEITEM;
hInsertAfter : HTREEITEM;
end;

TTVItemEx        = TTVItemExA

TTVItemExA = record
mask : UINT;
hItem : HTREEITEM;
state : UINT;
stateMask : UINT;
pszText : PChar;
cchTextMax : Integer;
iImage : Integer;
iSelectedImage : Integer;
cChildren : Integer;
lParam : LPARAM;
iIntegral : Integer;
end;
only used for Get and Set messages. no notifies
TTVItemExW = record
mask : UINT;
hItem : HTREEITEM;
state : UINT;
stateMask : UINT;
pszText : PWideChar;
cchTextMax : Integer;
iImage : Integer;
iSelectedImage : Integer;
cChildren : Integer;
lParam : LPARAM;
iIntegral : Integer;
end;

Constants

CDDS_ITEM = $00010000

the = $000010000 bit means it's individual item specific

CDDS_ITEMPOSTERASE = (CDDS_ITEM or CDDS_POSTERASE)

CDDS_ITEMPOSTPAINT = (CDDS_ITEM or CDDS_POSTPAINT)

CDDS_ITEMPREERASE = (CDDS_ITEM or CDDS_PREERASE)

CDDS_ITEMPREPAINT = (CDDS_ITEM or CDDS_PREPAINT)

CDDS_POSTERASE = $00000004

CDDS_POSTPAINT = $00000002

CDDS_PREERASE = $00000003

CDDS_PREPAINT = $00000001

drawstage flags values under = $00010000 are reserved for global custom draw values. above that are for specific controls

CDDS_SUBITEM = $00020000

CDIS_CHECKED = $0008

CDIS_DEFAULT = $0020

CDIS_DISABLED = $0004

CDIS_FOCUS = $0010

CDIS_GRAYED = $0002

CDIS_HOT = $0040

CDIS_INDETERMINATE = $0100

CDIS_MARKED = $0080

CDIS_SELECTED = $0001

itemState flags

CDRF_DODEFAULT = $00000000

==================== CUSTOM DRAW ======================================= custom draw return flags values under = $00010000 are reserved for global custom draw values. above that are for specific controls

CDRF_NEWFONT = $00000002

CDRF_NOTIFYITEMDRAW = $00000020

CDRF_NOTIFYITEMERASE = $00000080

CDRF_NOTIFYPOSTERASE = $00000040

flags are the same, we can distinguish by context

CDRF_NOTIFYPOSTPAINT = $00000010

CDRF_NOTIFYSUBITEMDRAW = $00000020

CDRF_SKIPDEFAULT = $00000004

NM_CHAR = NM_FIRST-18

uses NMMOUSE struct

NM_CUSTOMDRAW = NM_FIRST-12

NM_HOVER = NM_FIRST-13

sub messages of WM_NOTIFY

NM_KEYDOWN = NM_FIRST-15

uses NMMOUSE struct

NM_NCHITTEST = NM_FIRST-14

NM_RELEASEDCAPTURE = NM_FIRST-16

uses NMKEY struct

NM_SETCURSOR = NM_FIRST-17

TVCDRF_NOIMAGES = $00010000

treeview's customdraw return meaning don't draw images. valid on CDRF_NOTIFYITEMPREPAINT

TVGN_LASTVISIBLE = $000A

TVIF_INTEGRAL = $0080

TVIS_CHECKED = $2000

TVIS_EXPANDPARTIAL = $0080

TVM_GETINSERTMARKCOLOR = TV_FIRST+38

TVM_GETITEMHEIGHT = TV_FIRST + 28

TVM_GETSCROLLTIME = TV_FIRST+34

TVM_SETBORDER = TV_FIRST+35

TVM_SETINSERTMARK = TV_FIRST+26

TVM_SETINSERTMARKCOLOR = TV_FIRST+37

TVM_SETITEMHEIGHT = TV_FIRST + 27

TVM_SETSCROLLTIME = TV_FIRST+33

TVM_SETTEXTCOLOR = TV_FIRST+30

TVN_GETINFOTIP = TVN_GETINFOTIPA

TVN_GETINFOTIPA = TVN_FIRST-13

uses NMCHAR struct

TVN_GETINFOTIPW = TVN_FIRST-14

TVN_SINGLEEXPAND = TVN_FIRST-15

TVSBF_XBORDER = $00000001

TVSBF_YBORDER = $00000002

TVS_CHECKBOXES = $0100

TVS_FULLROWSELECT = $1000

TVS_INFOTIP = $0800

TVS_NOSCROLL = $2000

TVS_NOTOOLTIPS = $0080

The following values were taken from commtrl.h, since they aren't currently part of CommCtrl.pas.

TVS_SINGLEEXPAND = $0400

TVS_TRACKSELECT = $0200


Variables