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

📄 treelist.h

📁 PGP8.0源码 请认真阅读您的文件包然后写出其具体功能
💻 H
📖 第 1 页 / 共 2 页
字号:
/*____________________________________________________________________________
	Copyright (C) 2002 PGP Corporation
	All rights reserved.
	
	TreeList.h	- 	header for TreeList custom control

	$Id: TreeList.h,v 1.19 2002/10/09 15:03:51 pbj Exp $
	
____________________________________________________________________________*/
// This file partially derived from COMMCTRL.H by Microsoft Corp.

#ifndef _INC_TREELIST
#define _INC_TREELIST

#ifndef NOUSER


//
// Define API decoration for direct importing of DLL references.
//
#ifndef WINCOMMCTRLAPI
#if !defined(_COMCTL32_) && defined(_WIN32)
#define WINCOMMCTRLAPI DECLSPEC_IMPORT
#else
#define WINCOMMCTRLAPI
#endif
#endif // WINCOMMCTRLAPI

//
// For compilers that don't support nameless unions
//
#ifndef DUMMYUNIONNAME
#ifdef NONAMELESSUNION
#define DUMMYUNIONNAME   u
#define DUMMYUNIONNAME2  u2
#define DUMMYUNIONNAME3  u3
#else
#define DUMMYUNIONNAME
#define DUMMYUNIONNAME2
#define DUMMYUNIONNAME3
#endif
#endif // DUMMYUNIONNAME

#ifdef _WIN32
#include <pshpack1.h>
#endif

#ifdef __cplusplus
extern "C" {
#endif

//===========================================================================
//
// Users of this header may define any number of these constants to avoid
// the definitions of each functional group.
//
// NOTREELIST   Custom control which is hybrid of TreeView and ListView
//
//===========================================================================

#include <prsht.h>


#ifdef __cplusplus
#define SNDMSG ::SendMessage
#else
#define SNDMSG SendMessage
#endif


void WINAPI InitTreeListControl (void);


//====== Ranges for control message IDs =====================================

#define TLM_FIRST               0x1000      // TreeList messages


//====== WM_NOTIFY codes (NMHDR.code values) ================================

#define TLN_FIRST               (0U-100U)       
#define TLN_LAST                (0U-199U)


//====== TREELIST CONTROL ===================================================

#ifndef NOTREELIST

#ifdef _WIN32
#define WC_TREELISTA            "TreeListCtrl32"
#define WC_TREELISTW            L"TreeListCtrl32"

#ifdef UNICODE
#define  WC_TREELIST            WC_TREELISTW
#else
#define  WC_TREELIST            WC_TREELISTA
#endif

#else
#define WC_TREELIST             "TreeListCtrl"
#endif

#define TLS_HASBUTTONS          0x0001
#define TLS_HASLINES            0x0002
#define TLS_LINESATROOT         0x0004
#define TLS_AUTOSCROLL			0x0008
#define TLS_PROMISCUOUS			0x0010
#define TLS_SINGLESELECT		0x0020
#define TLS_INTERNALDRAG		0x0040
#define TLS_DRAGABLEHEADERS		0x0080
#define TLS_SHOWSELECTIONALWAYS	0x0100
#define TLS_DRAGSELECTION		0x0200
#define TLS_USEDEFAULTGUIFONT	0x0400
#define TLS_NOSORTHEADER		0x0800
#define TLS_DROPBETWEEN			0x1000
#define TLS_TOOLTIPNOTIFY		0x2000

typedef struct _TLITEM FAR* HTLITEM;

#define TLIF_TEXT               0x0001
#define TLIF_IMAGE              0x0002
#define TLIF_PARAM              0x0004
#define TLIF_STATE              0x0008
#define TLIF_HANDLE             0x0010
#define TLIF_DATAVALUE			0x0020
#define TLIF_NEXTHANDLE			0x0040
#define TLIF_PARENTHANDLE		0x0080
#define TLIF_PREVHANDLE			0x0100
#define TLIF_CHILDHANDLE		0x0200

#define TLIS_FOCUSED            0x0001
#define TLIS_SELECTED           0x0002
#define TLIS_EXPANDED           0x0004
#define TLIS_BOLD               0x0008
#define TLIS_ITALICS			0x0010
#define TLIS_CLICKED			0x0020
#define TLIS_VISIBLE			0x0080
#define TLIS_DRAGGEDOVER		0x0100
#define TLIS_TRUNCATED			0x0200
#define TLIS_ANIMATED			0x0400
#define TLIS_DRAGGEDBEFORE		0x0800
#define TLIS_DRAGGEDAFTER		0x1000
#define TLIS_DROPONALLOWED		0x2000

typedef struct _TL_TREEITEMA {
    UINT      mask;
    HTLITEM   hItem;
    UINT      state;
    UINT      stateMask;
    LPSTR     pszText;
    int       cchTextMax;
    int       iImage;
    int       iSelectedImage;
    int       cChildren;
    LPARAM    lParam;
} TL_TREEITEMA, FAR *LPTL_TREEITEMA;

typedef struct _TL_TREEITEMW {
    UINT      mask;
    HTLITEM   hItem;
    UINT      state;
    UINT      stateMask;
    LPWSTR    pszText;
    int       cchTextMax;
    int       iImage;
    int       iSelectedImage;
    int       cChildren;
    LPARAM    lParam;
} TL_TREEITEMW, FAR *LPTL_TREEITEMW;

#ifdef UNICODE
#define  TL_TREEITEM                TL_TREEITEMW
#define  LPTL_TREEITEM              LPTL_TREEITEMW
#else
#define  TL_TREEITEM                TL_TREEITEMA
#define  LPTL_TREEITEM              LPTL_TREEITEMA
#endif


#define TLI_ROOT                ((HTLITEM)0xFFFF0000)
#define TLI_FIRST               ((HTLITEM)0xFFFF0001)
#define TLI_LAST                ((HTLITEM)0xFFFF0002)
#define TLI_SORT                ((HTLITEM)0xFFFF0003)
#define TLI_SORTREVERSE         ((HTLITEM)0xFFFF0004)

typedef struct _TL_INSERTSTRUCTA {
    HTLITEM hParent;
    HTLITEM hInsertAfter;
    TL_TREEITEMA item;
} TL_INSERTSTRUCTA, FAR *LPTL_INSERTSTRUCTA;

typedef struct _TL_INSERTSTRUCTW {
    HTLITEM hParent;
    HTLITEM hInsertAfter;
    TL_TREEITEMW item;
} TL_INSERTSTRUCTW, FAR *LPTL_INSERTSTRUCTW;

#ifdef UNICODE
#define  TL_INSERTSTRUCT        TL_INSERTSTRUCTW
#define  LPTL_INSERTSTRUCT      LPTL_INSERTSTRUCTW
#else
#define  TL_INSERTSTRUCT        TL_INSERTSTRUCTA
#define  LPTL_INSERTSTRUCT      LPTL_INSERTSTRUCTA
#endif

#define TLM_INSERTITEMA         (TLM_FIRST + 0)
#define TLM_INSERTITEMW         (TLM_FIRST + 50)
#ifdef UNICODE
#define  TLM_INSERTITEM         TLM_INSERTITEMW
#else
#define  TLM_INSERTITEM         TLM_INSERTITEMA
#endif

#define TreeList_InsertItem(hwnd, lpis) \
    (HTLITEM)SNDMSG((hwnd), TLM_INSERTITEM, 0, \
	(LPARAM)(LPTL_INSERTSTRUCT)(lpis))

#define TLM_REINSERTITEMA       (TLM_FIRST + 4)
#define TLM_REINSERTITEMW       (TLM_FIRST + 54)
#ifdef UNICODE
#define  TLM_REINSERTITEM       TLM_REINSERTITEMW
#else
#define  TLM_REINSERTITEM       TLM_REINSERTITEMA
#endif

#define TreeList_ReInsertItem(hwnd, lpis) \
    (HTLITEM)SNDMSG((hwnd), TLM_REINSERTITEM, 0, \
	(LPARAM)(LPTL_INSERTSTRUCT)(lpis))


#define TLM_DELETETREE          (TLM_FIRST + 3)
#define TreeList_DeleteTree(hwnd, bFree) \
    (BOOL)SNDMSG((hwnd), TLM_DELETETREE, bFree, 0)


#define TLM_DELETEITEM          (TLM_FIRST + 1)
#define TreeList_DeleteItem(hwnd, pitem) \
    (BOOL)SNDMSG((hwnd), TLM_DELETEITEM, 0, (LPARAM)(TL_TREEITEM FAR*)(pitem))


#define TLM_DELETECHILDREN      (TLM_FIRST + 10)
#define TreeList_DeleteChildren(hwnd, pitem) \
    (BOOL)SNDMSG((hwnd), TLM_DELETECHILDREN, 0, \
	(LPARAM)(TL_TREEITEM FAR*)(pitem))


#define TLM_EXPAND              (TLM_FIRST + 2)
#define TreeList_Expand(hwnd, hitem, code) \
    (BOOL)SNDMSG((hwnd), TLM_EXPAND, (WPARAM)code, \
	(LPARAM)(HTLITEM)(hitem))


#define TLE_COLLAPSE            0x0001
#define TLE_EXPAND              0x0002
#define TLE_TOGGLE              0x0003
#define TLE_COLLAPSEALL			0x0004
#define TLE_EXPANDALL			0x0005

#define TLM_SETIMAGELIST        (TLM_FIRST + 9)
#define TreeList_SetImageList(hwnd, himl) \
    (HIMAGELIST)SNDMSG((hwnd), TLM_SETIMAGELIST, 0, \
	(LPARAM)(UINT)(HIMAGELIST)(himl))

#define TLM_SELECTITEM          (TLM_FIRST + 11)
#define TreeList_Select(hwnd, hitem, bdeselect) \
    (HTLITEM)SNDMSG((hwnd), TLM_SELECTITEM, (WPARAM)bdeselect, \
	(LPARAM)(HTLITEM)(hitem))

#define TLM_DRAGOVER			(TLM_FIRST + 14)
#define TreeList_DragOver(hwnd, coords) \
	(BOOL)SNDMSG((hwnd), TLM_DRAGOVER, 0, (LPARAM)(coords))

#define TLWM_KEEPASPECTRATIO	0x0001
#define TLWM_CONSTANTBKGRND		0x0002
#define TLWM_SHRINKONLY			0x0004

typedef struct _TL_WATERMARK {
	HBITMAP		hbm;
	SIZE		size;
	int			iAlpha;			// not currently used
	COLORREF	crBkgrnd;
	ULONG		ulFlags;
} TL_WATERMARK, FAR *LPTL_WATERMARK;

#define TLM_SETWATERMARKBMP		(TLM_FIRST + 22)
#define TreeList_SetWatermarkBmp(hwnd, lpwm) \
	(BOOL)SNDMSG((hwnd), TLM_SETWATERMARKBMP, 0, \

⌨️ 快捷键说明

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