谁有入门级别的CTreeView教程

wenluderen 2014-02-12 02:08:25
我想使用CTreeView 创建一个类似于



但是网上的资料 大都说的太粗略,给熟手看还可以。给小白看根本就是不知所以然。

有个人写蛮基础(http://blog.csdn.net/manyikaimen/article/details/13624359)的。

但是将到重载OnInitialUpdate() 我不就知道他在做什么了。

按照的想法CTreeView 是MFC自己本来就有的一个类。直接使用它实例化一个对象就好了

为何还创建一个新的类(继承与它)。

是不是可以这样做呢

在 CXXXView::PreCreateWindow函数体里面实例化一个CTreeView对象名为 GSZ

然后调用GSZ的成员函数添加节点呢?

还望各位前辈指点一二。

谢谢
...全文
239 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2014-03-12
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
wenluderen 2014-02-12
  • 打赏
  • 举报
回复
另外我用的IDE是VS2010
MSND是 2010版本
wenluderen 2014-02-12
  • 打赏
  • 举报
回复
另外我用的IDE是VS2010
MSND是 2010版本
wenluderen 2014-02-12
  • 打赏
  • 举报
回复
引用 4 楼 SXJIAKE 的回复:
[quote=引用 3 楼 wenluderen 的回复:]
[quote=引用 2 楼 SXJIAKE 的回复:]
CTreeView 应该是 WTL 的并非 MFC 的,MFC 是 CTreeCtrl。MFC 的资料比较多,微软自己就有,但是 WTL 几乎没有资料。创建这样的树形结构很简单,CTreeCtrl::InsertItem、CTreeView::InsertItem 都差不多。
CTreeView是MFC的东西

见继承图
[/quote]
CTreeView 查 MSDN 好像 VS2013 才有的,以前没有。况且这个 CTreeView 也不是楼主所说的 CTreeView。楼主可能想说 CTreeCtrl,只是不知道给搞错了。[/quote]
不是的 CTreeCtrl 只是一个控件,和CtreeView不一样。
下图是CTreeCtrl的继承图
「已注销」 2014-02-12
  • 打赏
  • 举报
回复
引用 3 楼 wenluderen 的回复:
[quote=引用 2 楼 SXJIAKE 的回复:] CTreeView 应该是 WTL 的并非 MFC 的,MFC 是 CTreeCtrl。MFC 的资料比较多,微软自己就有,但是 WTL 几乎没有资料。创建这样的树形结构很简单,CTreeCtrl::InsertItem、CTreeView::InsertItem 都差不多。
CTreeView是MFC的东西 见继承图 [/quote] CTreeView 查 MSDN 好像 VS2013 才有的,以前没有。况且这个 CTreeView 也不是楼主所说的 CTreeView。楼主可能想说 CTreeCtrl,只是不知道给搞错了。
wenluderen 2014-02-12
  • 打赏
  • 举报
回复
引用 2 楼 SXJIAKE 的回复:
CTreeView 应该是 WTL 的并非 MFC 的,MFC 是 CTreeCtrl。MFC 的资料比较多,微软自己就有,但是 WTL 几乎没有资料。创建这样的树形结构很简单,CTreeCtrl::InsertItem、CTreeView::InsertItem 都差不多。
CTreeView是MFC的东西

见继承图
「已注销」 2014-02-12
  • 打赏
  • 举报
回复
CTreeView 应该是 WTL 的并非 MFC 的,MFC 是 CTreeCtrl。MFC 的资料比较多,微软自己就有,但是 WTL 几乎没有资料。创建这样的树形结构很简单,CTreeCtrl::InsertItem、CTreeView::InsertItem 都差不多。
wenluderen 2014-02-12
  • 打赏
  • 举报
回复
代码如下

void CGszTreeViewView::OnInitialUpdate()

{
	CTreeCtrl * ptheTree;//实例对对象
	ptheTree = &GetTreeCtrl();
	ptheTree->ModifyStyle(0,TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS);
	TVINSERTSTRUCT tvInsert;
	HTREEITEM hTreeItem;
	tvInsert.hInsertAfter = NULL;//TVI_LAST;
	tvInsert.hParent = TVI_ROOT;
	tvInsert.item.mask = TVIF_TEXT;
	tvInsert.item.pszText = L"一年级";
	hTreeItem = ptheTree->InsertItem(&tvInsert);
	tvInsert.hParent = hTreeItem;
	 tvInsert.item.pszText = L"1班";
	 ptheTree->InsertItem(&tvInsert);
	 tvInsert.item.pszText = L"2班";
    ptheTree->InsertItem(&tvInsert);
	ptheTree->Expand(hTreeItem,TVE_EXPAND);
	tvInsert.hParent = TVI_ROOT;
	tvInsert.item.pszText = L"二年级";
	hTreeItem = ptheTree->InsertItem(&tvInsert);
	tvInsert.hParent = hTreeItem;
	tvInsert.item.pszText = L"1班";
	ptheTree->InsertItem(&tvInsert);
	tvInsert.item.pszText = L"2班";
	ptheTree->InsertItem(&tvInsert);
	 tvInsert.item.pszText = L"3班";
	 ptheTree->InsertItem(&tvInsert);
	CView::OnInitialUpdate();

	// TODO: 在此添加专用代码和/或调用基类
}

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧