DEV Community

海前 王
海前 王

Posted on

tvs

下面是你提供的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 和相关结构体根据实际情况进行调整和补充。





Enter fullscreen mode Exit fullscreen mode

Top comments (0)