下面是你提供的commctrl.h头文件中的树视图控件(TreeView)相关宏和结构体定义的翻译整理版本。这些定义通常用于设置和操作树视图控件的属性和状态。
树视图控件样式标志
cpp
复制代码
#define TVS_HASBUTTONS 0x0001 // 节点前显示按钮
#define TVS_HASLINES 0x0002 // 节点之间显示连接线
#define TVS_LINESATROOT 0x0004 // 根节点显示连接线
#define TVS_EDITLABELS 0x0008 // 允许编辑节点标签
#define TVS_DISABLEDRAGDROP 0x0010 // 禁用拖放操作
#define TVS_SHOWSELALWAYS 0x0020 // 始终显示选中状态
#define TVS_RTLREADING 0x0040 // 从右到左读取文本
#define TVS_NOTOOLTIPS 0x0080 // 禁用工具提示
#define TVS_CHECKBOXES 0x0100 // 显示复选框
#define TVS_TRACKSELECT 0x0200 // 跟踪选中状态
#define TVS_SINGLEEXPAND 0x0400 // 单一展开节点
#define TVS_INFOTIP 0x0800 // 显示信息提示
#define TVS_FULLROWSELECT 0x1000 // 选择整行
#define TVS_NOSCROLL 0x2000 // 禁用滚动
#define TVS_NONEVENHEIGHT 0x4000 // 禁用不均匀高度
#define TVS_NOHSCROLL 0x8000 // 禁用水平滚动(TVS_NOSCROLL覆盖此选项)
#if (NTDDI_VERSION >= NTDDI_WINXP)
#define TVS_EX_NOSINGLECOLLAPSE 0x0001 // 禁用单一折叠
#endif
#if (NTDDI_VERSION >= NTDDI_VISTA)
#define TVS_EX_MULTISELECT 0x0002 // 支持多重选择
#define TVS_EX_DOUBLEBUFFER 0x0004 // 双缓冲显示
#define TVS_EX_NOINDENTSTATE 0x0008 // 不保留缩进状态
#define TVS_EX_RICHTOOLTIP 0x0010 // 丰富工具提示
#define TVS_EX_AUTOHSCROLL 0x0020 // 自动水平滚动
#define TVS_EX_FADEINOUTEXPANDOS 0x0040 // 展开动画
#define TVS_EX_PARTIALCHECKBOXES 0x0080 // 部分复选框
#define TVS_EX_EXCLUSIONCHECKBOXES 0x0100 // 排他性复选框
#define TVS_EX_DIMMEDCHECKBOXES 0x0200 // 灰暗复选框
#define TVS_EX_DRAWIMAGEASYNC 0x0400 // 异步绘制图像
#endif
树视图项(TVITEM)标志
cpp
复制代码
#define TVIF_TEXT 0x0001 // 项目文本
#define TVIF_IMAGE 0x0002 // 项目图像
#define TVIF_PARAM 0x0004 // 项目参数
#define TVIF_STATE 0x0008 // 项目状态
#define TVIF_HANDLE 0x0010 // 项目句柄
#define TVIF_SELECTEDIMAGE 0x0020 // 选中状态图像
#define TVIF_CHILDREN 0x0040 // 项目是否有子节点
#define TVIF_INTEGRAL 0x0080 // 项目是否完整
#if (_WIN32_IE >= 0x0600)
#define TVIF_STATEEX 0x0100 // 扩展状态
#define TVIF_EXPANDEDIMAGE 0x0200 // 展开状态图像
#endif
树视图项状态标志
cpp
复制代码
#define TVIS_SELECTED 0x0002 // 项目被选中
#define TVIS_CUT 0x0004 // 项目被剪切
#define TVIS_DROPHILITED 0x0008 // 项目被拖放高亮
#define TVIS_BOLD 0x0010 // 项目加粗
#define TVIS_EXPANDED 0x0020 // 项目已展开
#define TVIS_EXPANDEDONCE 0x0040 // 项目曾经展开过
#define TVIS_EXPANDPARTIAL 0x0080 // 项目部分展开
#define TVIS_OVERLAYMASK 0x0F00 // 覆盖图像掩码
#define TVIS_STATEIMAGEMASK 0xF000 // 状态图像掩码
#define TVIS_USERMASK 0xF000 // 用户定义掩码
#if (_WIN32_IE >= 0x0600)
#define TVIS_EX_FLAT 0x0001 // 扁平化视图
#if (NTDDI_VERSION >= NTDDI_VISTA)
#define TVIS_EX_DISABLED 0x0002 // 禁用项
#endif
#define TVIS_EX_ALL 0x0002 // 所有扩展标志
#endif
NMTVSTATEIMAGECHANGING 结构体
cpp
复制代码
typedef struct tagNMTVSTATEIMAGECHANGING
{
NMHDR hdr; // 通用消息头
HTREEITEM hti; // 项目句柄
int iOldStateImageIndex; // 旧状态图像索引
int iNewStateImageIndex; // 新状态图像索引
} NMTVSTATEIMAGECHANGING, *LPNMTVSTATEIMAGECHANGING;
特殊常量
cpp
复制代码
#define I_CHILDRENCALLBACK (-1) // 使用回调函数获取子项
#define I_CHILDRENAUTO (-2) // 自动获取子项
TVITEM 结构体别名
cpp
复制代码
#define LPTV_ITEMW LPTVITEMW // 指向 TVITEMW 的指针
#define LPTV_ITEMA LPTVITEMA // 指向 TVITEMA 的指针
#define TV_ITEMW TVITEMW // TVITEMW 结构
#define TV_ITEMA TVITEMA // TVITEMA 结构
#define LPTV_ITEM LPTVITEM // 指向 TVITEM 的指针
#define TV_ITEM TVITEM // TVITEM 结构
TVITEM 结构体定义
这部分结构体定义在你提供的代码中被截断,完整定义应包括以下内容:
cpp
复制代码
typedef struct tagTVITEMA
{
UINT mask; // 控制哪些成员有效
int iItem; // 项目索引
int iImage; // 图像索引
int iSelectedImage; // 选中状态图像索引
UINT state; // 项目状态
UINT stateMask; // 状态掩码
LPSTR pszText; // 指向文本的指针
int cchTextMax; // 文本缓冲区最大字符数
LPARAM lParam; // 自定义参数
} TVITEMA, *LPTVITEMA;
请根据需要将 TVITEM 和相关结构体根据实际情况进行调整和补充。
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)