广州营销型网站建设怎么样,网页布局怎么设计,网站工程是干啥的,wordpress 导航文字图片目录
添加线条链接
添加折叠小按钮
设置树控件的节点和对应的图标
设置默认选中项
设置选中项切换响应函数
涉及接口介绍#xff1a; 首先我们通过资源视图可以添加一个树形控件#xff0c;如下#xff1a; 添加线条链接
在树形控件中#xff0c;有一个属性“Has…目录
添加线条链接
添加折叠小按钮
设置树控件的节点和对应的图标
设置默认选中项
设置选中项切换响应函数
涉及接口介绍 首先我们通过资源视图可以添加一个树形控件如下 添加线条链接
在树形控件中有一个属性“Has Lines”如下图所示这里因为汉化的原因显示中文 当 “Has Lines”为true时子节点与父节点之间会添加线条链接效果如下 上面虽然子节点与父节点之间虽然有线条链接但是可以发现与根节点之间并没有线条链接这里可以在设置 “Lines At Root”属性如下 添加折叠小按钮
默认情况下每个父项节点是没有“”按钮进行展开/收起子节点的这里有一个属性“Has Buttons”如下 当 “Has Buttons”属性为true时效果如下 设置树控件的节点和对应的图标
第一步准备icon资源如果原始图片资源不是icon资源我们可以先通过如下链接将图片资源转换为icon格式
Convertio — 文件转换器https://convertio.co/zh/将准备好的icon资源放到项目所在目录下的res目录中 随后在资源视图中添加资源-icon-导入 第二步通过代码添加树控件节点和对应的图标
这里需要注意的是CImageList imgeList必须在头文件声明因为这里是在初始化函数中执行的当函数结束对话窗窗口还存在树控件还指向imgeList中的图标就会导致访问已经释放的资源问题。 /*1、加载图片资源*/HICON img[3];img[0] AfxGetApp()-LoadIcon(IDR_MAINFRAME);img[1] AfxGetApp()-LoadIcon(IDR_MAINFRAME);img[2] AfxGetApp()-LoadIcon(IDR_MAINFRAME);imgeList.Create(30, 30, ILC_COLOR32, 3, 3);for (int i 0; i 3; i) {imgeList.Add(img[i]);}m_tree.SetImageList(imgeList, TVSIL_NORMAL);/*2、设置节点、节点图标、节点的父节点*/HTREEITEM root m_tree.InsertItem(L根节点, 0, 0, TVI_ROOT);HTREEITEM parent m_tree.InsertItem(L父节点, 1, 1, root);HTREEITEM sub1 m_tree.InsertItem(L子节点, 2, 2, parent); 效果如下 设置默认选中项 HTREEITEM root m_tree.InsertItem(L根节点, 0, 0, TVI_ROOT);HTREEITEM parent m_tree.InsertItem(L父节点, 1, 1, root);HTREEITEM sub1 m_tree.InsertItem(L子节点, 2, 2, parent);/*设置默认选中项*/m_tree.SelectItem(sub1);
效果如下 设置选中项切换响应函数 在树控件中选中项切换对应的响应函数是TVN_SELCHANGED如下 我们可以在这个函数中编写需要的代码
涉及接口介绍
1、AfxGetApp()-LoadIcon()
功能加载应用程序图标资源已经通过资源文件导入的资源
语法
HICON LoadIcon(UINT nIDResource);
参数
nIDResource 图标资源ID如 IDR_MAINFRAME
返回值 成功返回图标句柄HICON失败返回NULL。
说明
AfxGetApp() 获取当前应用程序对象指针从应用程序资源中加载指定ID的图标
2、CImageList::Create()
功能创建图像列表对象
语法
BOOL Create(int cx, // 图像宽度int cy, // 图像高度UINT nFlags, // 图像类型标志int nInitial, // 初始图像数量int nGrow // 增长数量
);
参数详解
-cx 每个图像的宽度像素 -cy 每个图像的高度像素 -nFlags 图像类型标志常用值 - ILC_COLOR 使用默认行为 - ILC_COLOR4 4位16色 - ILC_COLOR8 8位256色 - ILC_COLOR16 16位65536色 - ILC_COLOR24 24位真彩色 - ILC_COLOR32 32位真彩色Alpha通道 //常用 - ILC_MASK 使用掩码 - nInitial 图像列表的初始容量 - nGrow 当需要更多空间时的增长数量
返回值 成功返回TRUE失败返回FALSE。
3、CTreeCtrl::SetImageList()
功能为树控件设置图像列表
语法
CImageList* SetImageList(CImageList* pImageList, // 图像列表指针int nImageListType // 图像列表类型
);
参数
- pImageList 指向CImageList对象的指针 - nImageListType 图像列表类型常用值 - TVSIL_NORMAL 正常状态图像列表 //常用 - TVSIL_STATE 状态图像列表 返回值 返回之前设置的图像列表指针。
4、CTreeCtrl::InsertItem()
功能在树控件中插入新节点
语法
HTREEITEM InsertItem(LPCTSTR lpszItem, // 节点文本int nImage, // 正常状态图像索引int nSelectedImage, // 选中状态图像索引HTREEITEM hParent, // 父节点句柄HTREEITEM hInsertAfter // 插入位置
);// 简化版本
HTREEITEM InsertItem(LPCTSTR lpszItem, // 节点文本HTREEITEM hParent, // 父节点句柄HTREEITEM hInsertAfter // 插入位置
);
参数详解
- lpszItem 节点显示的文本字符串 - nImage 节点正常状态时显示的图像索引对应图像列表中的索引 - nSelectedImage 节点被选中时显示的图像索引 - hParent 父节点句柄特殊值 - TVI_ROOT 作为根节点插入 - 其他HTREEITEM作为指定节点的子节点 - hInsertAfter 插入位置特殊值 - TVI_FIRST 插入为第一个子节点 - TVI_LAST 插入为最后一个子节点 - TVI_SORT 按字母顺序插入