别人用delphi写的很简单实用的多列功能的treeview --- treelistviewhttp://topic.csdn.net/t/20050628/07/4108848.html 下面是控件的源代码。你可以在这里下载源代码和 demo:http://www./test/treelistview.rar
treelistview源代码如下: TreeList.pas
vc源码本地下载URL: 评论#1楼[楼主]本文作者在CSDN上的ID是:qinmaofan
CSDN上的网址是:http://blog.csdn.net/qinmaofan http://feeds./csdn.net/qinmaofan 该作者最重要的特点是---他是一个共享软件开发者。 #2楼[楼主]#3楼[楼主]delphi中点击tree conctol时如何得到此item的HTREEITEM结构数据?
http://www./show-TlRjd05UWTQ=.html 1楼: CPoint point(::GetMessagePos()); m_treectrl.ScreenToClient(&point); UINT Flags; HTREEITEM hItem = m_treectrl.HitTest(point, &Flags); 或者 HTREEITEM hItem = m_treectrl.GetSelectedItem(); 2楼:在TV_ITEMEXPANDING事件中加入 while(bWorking){ bWorking = finder.FindNextFile(); if(finder.IsDirectory()){ TreeCtrlItem.hParent=hTreeItem;//主要是这个我想在点击d:时把d:下的子目录链上去 TreeCtrlItem.item.lParam=10; pTxt=new char[strlen(finder.GetFileName())+1]; strcpy(pTxt, finder.GetFileName()); TreeCtrlItem.item.pszText=pTxt; m_Path_TreeCtrl.InsertItem(&TreeCtrlItem); delete pTxt; TRACE("\nhehe=%s\n",finder.GetFileName()); } //TRACE("\nkankan"); } 3楼:HTREEITEM hParent=((LPNMTREEVIEW)lParam)->itemNew.hItem; 你的TreeCtrlItem是什么?是TVINSERTSTRUCT吗?如果是,则你的写法似乎有点问题。 TVINSERTSTRUCT tvis; tvis.hParent=hParent; tvis.hInsertAfter=TVI_LAST; TVITEM tvi; tvi.mask=TVIF_TEXT|TVIF_PARAM; tvi.pszText=szText; tvi.cchTextMax=lstrlen(szText)+1; tvi.lParam=10; tvis.item=tvi; m_Path_TreeCtrl.InsertItem(&tvis); 4楼:谢谢!HTREEITEM hParent=((LPNMTREEVIEW)pNMHDR)->itemNew.hItem; 就是这个问题解决的非常感谢。都很多天了. #4楼[楼主]想写一个树型结构的控件,请各位指导一下?谢谢先 http:///t3144806.html wildacj 题问:大概操作是:先有一个图片按钮,点击以后出现下一级字按钮,用图片线连接。谢谢! 57808475 2004-10-20 12:48 要用到什么??调用哪些类库 wildacj 2004-10-20 14:52 就是,我需要用C++写出来的,谢谢先 Polarislee 2004-10-20 15:40 你要写还是要用,Windows提供的控件里就有Tree wildacj 2004-10-20 15:56 是想写,不用MFC,大概的意思是有一张按钮的图片放到窗口上,点击该图片出现子目录按钮,用OPENGL来写,怎么写呢? nlstone 2004-10-20 17:34 数据结构很简单,网上有很多现成的树的类库或者模板库 完全自己来画?麻烦......:) wildacj 2004-10-21 08:57 就是觉得很困难才来问问看的啊,哪为老兄能给点思路呢 lynnboy 2004-10-21 09:33 用一个二叉树保存树结构,绘图并保存绘图位置。 保护一个当前焦点的记录索引itemCurr, 获取键盘和鼠标事件,通过图形坐标计算出所操作的item,转换成item事件, 处理item事件并重新绘制。 nlstone 2004-10-21 11:57 很困难也不至于,麻烦是在于"画"的那部分,而不是在数据结构方面,树可以直接找现成的. TO:楼上,怎么会用"二叉树"? 显示重绘的时候实际上也是一个对显示当前结点的显示函数的递归调用,但要注意保留计算保留当前层的一些坐标信息,譬如说前一个兄弟结点显示完后(有可能展开),才能算出当前结点的Y坐标,而这个Y是根据前一个兄弟结点的Y坐标以及它的子结点的展开算出来的(递归过程中需要进行统计) 总的来说,是个细活,仔细考虑吧... nlstone 2004-10-21 11:58 最好是找个合适的控件或者完整的类库:) 非MFC的OpenGL的应该也有... wildacj 2004-10-21 15:00 nlstone(天外流星):最好是找个合适的控件或者完整的类库:) 非MFC的OpenGL的应该也有... 这个是什么意思?哪里去找呢? nlstone 2004-10-21 23:01 譬如说很多游戏开发方面的资源,或者一些OpenGL社区/网站,"也许"有一些资源可以用. 毕竟这种OpenGL/DX显示模式下的树形显示结构在娱乐行业应用还是很多的. 这方面我不擅长,所供建议,仅供参考... |
|