HTREEITEM到底是什么东东?

jack_wq 2005-11-29 02:14:45
HTREEITEM InsertItem( LPTVINSERTSTRUCT lpInsertStruct );的返回值到底是什么东东,那位大侠给详细的解释一下?
...全文
3741 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
jijun1018 2010-06-04
  • 打赏
  • 举报
回复
它的确是一个指针,但在VC中好像看不到他的结构体,他是怎么保存数据的,怎么把插入的数据提出来呢
sstower 2005-11-30
  • 打赏
  • 举报
回复
我在想是不是一个初始地址
jack_wq 2005-11-30
  • 打赏
  • 举报
回复
谢谢jazy()。我加入了wshcdr(dd)的代码,结果每个子Item和父Item之间的连线都没有了,而根Item前面的虚线还是存在。我想做的是
------------------------------------
|Message1(ROOT)(根)
| .
| .
| ......message2(OFF)
| .
| .
| ......message3(ON)
| .
| .
| ......message4(OFF)

其中,短划线表示视图窗口,请各位大侠再给点更适合一点的建议,拜托了
jazy 2005-11-30
  • 打赏
  • 举报
回复
无论什么控件,都可以用SetWindowLong改变风格啊,不一定是对话框的,wshcdr(dd) 只是给个例子,你当然要根据自己的实际环境调整
jack_wq 2005-11-30
  • 打赏
  • 举报
回复
请问“wshcdr(dd)”我不太明白,我创建的时候选择的是单文档视图,视图类的基类选择的是CTreeView类,难道还需要对话框吗?在OnInitialUpdate里面直接添加:
CTreeCtrl& trCtrl = GetTreeCtrl();
HTREEITEM hItem;

hItem = trCtrl.InsertItem( "DL_DCCH-Message", 0, 0, 0);
trCtrl.InsertItem( "Yaounde", 0, 0, hItem );
trCtrl.InsertItem( "Douala", 1, 3, hItem);
trCtrl.InsertItem( "Ebolowa", 1, 3, hItem );

不应该可以实现我的要求吗?为什么还需要用Dialog呢?步骤是怎么样的能不能给详细的说一下?谢谢!
Snow_Ice11111 2005-11-29
  • 打赏
  • 举报
回复
向强人们学习一下。
wshcdr 2005-11-29
  • 打赏
  • 举报
回复
LONG lStyle;
lStyle = GetWindowLong(trCtrl.m_hWnd, GWL_STYLE);
lStyle &= ~TVS_HASLINES;
SetWindowLong(trCtrl.m_hWnd, GWL_STYLE, lStyle);
//////////////////////////////
放在OnInitDialog里
jack_wq 2005-11-29
  • 打赏
  • 举报
回复
请问“lixiaosan(小三) ”,你给的那段代码应该加到哪里?
lixiaosan 2005-11-29
  • 打赏
  • 举报
回复
LONG lStyle;
lStyle = GetWindowLong(trCtrl.m_hWnd, GWL_STYLE);
lStyle &= ~TVS_HASLINES;
SetWindowLong(trCtrl.m_hWnd, GWL_STYLE, lStyle);
jack_wq 2005-11-29
  • 打赏
  • 举报
回复
请问“lixiaosan(小三) ”,默认的不可以修改吗?因为我这里有一个做好的用treeview实现的,他的第一个字母在视图中的坐标就是(0,0),我不知道是如何实现的,因为开发的人不在了,所以只好自己学习了,谢谢
jack_wq 2005-11-29
  • 打赏
  • 举报
回复
创建的tree实际上是:
+Message1(ROOT)(根)
.
.
....message2(OFF)
.
.
...message3(OFF)
我想把“+”去掉,变成下面的:

Message1(ROOT)(根)
.
.
....message2(OFF)
.
.
...message3(OFF)

不知道我说清楚了吗?

而且我创建treeview没有看到什么地方有“风格”的啊?难道“ hItem = trCtrl.InsertItem( "DL_DCCH-Message", 0, 0, 0); ”不可以直接创建吗?
lixiaosan 2005-11-29
  • 打赏
  • 举报
回复
也就是说和左上角(0,0)坐标总是有一点距离,不知道这个问题该如何解决?

这个是tree控件的默认设置。。
zjh824 2005-11-29
  • 打赏
  • 举报
回复
有一个可以展开的“+”,我不想要这个--------在风格里去掉Has button,即TVS_HASBUTTONS风格设置
和左上角(0,0)坐标总是有一点距离-----不知道是什么意思,是不是选 了TVS_LINESATROOT风格的原因
jack_wq 2005-11-29
  • 打赏
  • 举报
回复
好像不管用啊,不知道什么原因:

CTreeCtrl& trCtrl = GetTreeCtrl();
HTREEITEM hItem;

trCtrl.ModifyStyle(TVS_HASBUTTONS, 0);
hItem = trCtrl.InsertItem( "DL_DCCH-Message", 0, 0, 0);
trCtrl.InsertItem( "Yaounde", 0, 0, hItem );
trCtrl.InsertItem( "Douala", 1, 3, hItem);
trCtrl.InsertItem( "Ebolowa", 1, 3, hItem );
结果只显示"DL_DCCH-Message",而且第一个字母的坐标仍然不是左上角的(0,0)
lixiaosan 2005-11-29
  • 打赏
  • 举报
回复
m_tree.ModifyStyle(TVS_HASBUTTONS, 0);
菜牛 2005-11-29
  • 打赏
  • 举报
回复
你搜索一下HTREEITEM肯定有很多条目。
jack_wq 2005-11-29
  • 打赏
  • 举报
回复
再向楼上请教一个问题:我想实现如下图所示的tree
Message1(ROOT)
.
.
....message2(OFF)
.
.
...message3(OFF)
可是每次在InsertItem之后,根“Message1(ROOT)”前面总会有一个可以展开的“+”,我不想要这个,可是又不知道怎么把它去掉?而且缺省的InsertItem设置时候,根“Message1(ROOT)”的第一个字母总是不在视图的(0,0)坐标处,也就是说和左上角(0,0)坐标总是有一点距离,不知道这个问题该如何解决?

拜谢!答复之后揭帖,不知道是不是还可以帮我找一个类似的例子?
lixiaosan 2005-11-29
  • 打赏
  • 举报
回复
BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );

最后一个参数怎么添啊?


最后一个参数就是tree的id,如果你是动态创建的tree,你需要现在resource.h中先定义这个tree的id为xxxx,
比如
#define IDC_MY_TREE1 2000
create的最后一个参数就写IDC_MY_TREE1
jack_wq 2005-11-29
  • 打赏
  • 举报
回复
谢谢楼上的老大,我怎么在本地的MSDN和微软中国的MSDN上都没有查到呢?
jack_wq 2005-11-29
  • 打赏
  • 举报
回复
BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );

最后一个参数怎么添啊?
加载更多回复(2)

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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