MFC_CTreeView—树形视图类
来源:互联网 发布:centos分辨率设置 编辑:程序博客网 时间:2024/06/09 15:16
MFC_CTreeView—树形视图类
一、树形视图框架示意图
树形视图
CTreeView->CTreeCtrl
CImageList
二、首先建立一个WIN32项目,项目名称为TVDemo,以CTreeView类为基类,去掉工具栏。
1.
//TVDemoView.h
//保护成员中添加代码
protected:
CImageList m_ilDrives;//图片列表
2.
//在TVDemoView.cpp中添加函数OnInitialUpdate()
//在函数中添加如下代码
void CTVDemoView::OnInitialUpdate()
{
CTreeView::OnInitialUpdate();
m_ilDrives.Create(IDB_DRIVES,16,1,RGB(255,0,255));
//载入图片列表,每隔16像素,超出单位增长幅度,透明色设置
this->GetTreeCtrl().SetImageList(&m_ilDrives,TVSIL_NORMAL);
//把图片列表和树形控件关联起来
HTREEITEM hEagles=GetTreeCtrl().InsertItem(_T("NO1"),0,0,TVI_ROOT,TVI_SORT);
//创建父结点,赋值给资源句柄
HTREEITEMhEagles1=GetTreeCtrl().InsertItem(_T("NO2"),0,0,TVI_ROOT,TVI_SORT);
//创建父结点,赋值给资源句柄
GetTreeCtrl().InsertItem(_T("1"),4,5,hEagles);
GetTreeCtrl().InsertItem(_T("2"),4,5,hEagles);
GetTreeCtrl().InsertItem(_T("3"),4,5,hEagles);
//创建子结点4,5代表未选择是图片四,选中是图片五
GetTreeCtrl().InsertItem(_T("1"),4,5,hEagles1);
GetTreeCtrl().InsertItem(_T("2"),4,5,hEagles1);
GetTreeCtrl().InsertItem(_T("3"),4,5,hEagles1);
//创建子结点4,5代表未选择是图片四,选中是图片五
GetTreeCtrl().Expand(hEagles,TVE_EXPAND);//子结点直接是展开的
GetTreeCtrl().Expand(hEagles1,TVE_EXPAND);//子结点直接是展开的
}
掌握要点:树形视图只是一个容器,而编程是针对树形控件进行编程;
三、改变树形控件样式
//TVDemoView.cpp
//向PreCreateWindow中添加代码
BOOL CTVDemoView::PreCreateWindow(CREATESTRUCT& cs)
{
//TODO: 在此处通过修改
// CREATESTRUCT cs 来修改窗口类或样式
cs.style|=TVS_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS|TVS_SHOWSELALWAYS;
//TVS_SHOWSELALWAYS 离开这个窗口不改变结点选中状态;
// TVS_LINESATROOT 根目录线
// TVS_HASLINES 子目录线
// TVS_HASBUTTONS 父结点有加减号按钮
returnCTreeView::PreCreateWindow(cs);
}
四、显示子目录信息
//在视图类中添加函数OnTvnSelchanged
void CTVDemoView::OnTvnSelchanged(NMHDR *pNMHDR, LRESULT*pResult)
{
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
//TODO: 在此添加控件通知处理程序代码
CStringstrText=GetTreeCtrl().GetItemText(pNMTreeView->itemNew.hItem);
MessageBox(strText);//显示子目录的信息
*pResult = 0;
}
- MFC_CTreeView—树形视图类
- 树形视图控件
- Web树形数据结构视图
- 数据库+树形控件+视图分割——备忘
- [MFC]CTreeView树形视图、CTreeCtrl树形控件
- 树形视图和列表视图中的HitTest
- 树形视图和列表视图中的HitTest
- 树形视图和列表视图中的HitTest
- 树形视图和列表视图中的HitTest
- 数据库 树形控件 视图分割
- 小谈树形视图控件
- CDockablePane中加入树形视图
- Angularjs--自定义树形结构视图
- 由数据集生成树形视图
- 视图中实现树形目录结构
- Oracle实体视图及树形排序学习
- Angular中实现树形结构视图
- 单文档多视图——手动生成树形列表,并给叶子节点添加响应事件
- Masonry介绍与使用实践:快速上手Autolayout
- JavaWeb_Session实现简易购物车
- 供给侧也好,需求侧也好,都只是个名词
- 使用FloatingActionButton无法浮现在ListView的原因
- CodeForces 1B Spreadsheets
- MFC_CTreeView—树形视图类
- c#基本知识:泛型集合的使用
- git使用心得
- 传智播客168期JavaEE就业班(第六天 Dom4j)
- iptables之显示扩展基础应用(二)
- An error occurred while processing the post-install hook of the Podfile.undefined method `project`
- locationInView 和translationInView这个两个方法的区别
- Java—java方法重载
- IT产品质量保证测试矩阵