下面是你提供的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 和相关结构体根据实际情况进行调整和补充。
Speedy emails, satisfied customers
Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)