VC中CTreeView控件的使用.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VC中CTreeView控件的使用 1.清空TreeView里的所有内容,并重新填充 刚开始的时候,能用DeleteAllItems()方法把节点都给删除,但是留下了一片空白,重新添加的内容就看不到了。这个问题郁闷了很久,但思想无非是一样的,删除节点,重新填充。偶然间发现别人的代码里用到了SetRedraw()。哈,问题解决。 2.获取选中节点的文字内容以及获得当前节点的父节点 HTREEITEM hSelectedItem=m_TreeCtrl.GetSelectedItem(); CString strSelectedItemText=m_TreeCtrl.GetItemText(hSelectedItem); HTREEITEM hParentItem=m_TreeCtrl.GetParentItem(hSelectedItem); 3.添加一个节点到TreeView控件中 TV_ITEM tvItem; _variant_t vClass;? vClass= m_pRecordset-GetCollect(名称); tvItem.mask=TVIF_TEXT|TVIF_PARAM; CString temp; temp=(char*)_bstr_t(vClass); tvItem.pszText=(LPTSTR)(LPCTSTR)temp; TV_INSERTSTRUCT tvInsert; tvItem.cchTextMax=2; tvInsert.hParent=TVI_ROOT;//当作根节点 tvInsert.hInsertAfter=TVI_LAST; tvInsert.item=tvItem; HTREEITEM hRoot=m_TreeCtrl.InsertItem(tvInsert); 这段代码从数据库中读取“名称”字段来填充控件。最值得注意的就是红色的那句话,这里吧CString的字符串添加到TreeView 中需要进行复杂的转化,CSDN中有篇文章详细地讲述了CString 的操作。地址是: /article/53/53729.shtm这个是英文的 /blog/more.asp?name=njucsid=7350这个是中文的 对于上面操作的解释: 当你向控件写数据时,文本指针实际上被当成 LPCTSTR,而当你从控件读数据 时,你必须有一个可写的字符串。这个结构无法区分它是用来读还是用来写。 因此,你会常常在我的代码中看到如下的用法: tvi.item.pszText = (LPTSTR)(LPCTSTR)s;它把 CString 强制类型转化成 LPCTSTR,也就是说先获得改字符串的地址,然后再强制类型转化成 LPTSTR,以便可以对之进行赋值操作。 注意这只有在使用 Set 或 Insert 之类的方法才有效!如果你试图获取数据,则不能这么做。 本文来自CSDN博客,转载请标明出处: /hohowu/archive/2005/08/22/461467.aspx CTreeViewExt是MFC使用者可重用的类,该类由CTreeView派生,可以用在文档-视结构的应用程序中,并且支持DragDrop。 使用者所需要做的仅仅是将文件加到AppWizard产生的工程中,(CTreeView为基类)并且将CTreeView替换为CTreeViewExt。并重载三个Virtual Function。 (WenYY:这很简单吧,下面是源代码,我会在必要的地方加上注释,但由于原作者并未加,所以如果有出入请原谅,作者定义了三处虚拟函数,其作用是让使用者重载后,加入自己的判断条件和结果处理的功能,很巧妙的思想: ?????? CopyItemProperties ?????? IsItemCanBeDroppedOn(HTREEITEM hSource, HTREEITEM hTarget); ?????? BOOL ItemCanBeDragged(HTREEITEM hItem);//检查是否可以对该ITEM实施DragDrop ) Header file #if !defined(AFX_TREEVIEWEXT_H__99D8F6F8_79F0_11D1_8DC6_0000E8125FE5__INCLUDED_) #define AFX_TREEVIEWEXT_H__99D8F6F8_79F0_11D1_8DC6_0000E8125FE5__INCLUDED_ #if _MSC_VER = 1000 #pragma once #endif // _MSC_VER = 1000 // TreeViewExt.h : header file // ////////////////////

文档评论(0)

hy840215 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档