ctreectrl问题,100分求助

zhaolinger2 2011-03-07 05:57:17
工程中需要在树状图中多行显示文字,比如每10个字作为一行,超过的放在第二行去。

客户需求:
1、不能用SetItemHeight()增加行高(目前行高为1个文字高度),否则结构会乱掉;
2、不能减小文字大小,不然字体太小;
3、不能自定义CTreeCtrl,影响范围太大;
4、点击结点,收缩、展开子节点的时候,该节点的所有文字都必须全部显示,不能只显示第一行或者一部分。

有没有高手知道方法?100分求助!如果方法足够好,再追加100分。
急用,谢谢!
...全文
139 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
手机写程序 2011-03-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tandyt 的回复:]
引用 5 楼 xianglitian 的回复:
这也不能那也不能那还怎么改呢?


实在是太难了。。。
[/Quote]
我也不会,大受打击。
TandyT 2011-03-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xianglitian 的回复:]
这也不能那也不能那还怎么改呢?
[/Quote]

实在是太难了。。。
向立天 2011-03-08
  • 打赏
  • 举报
回复
这也不能那也不能那还怎么改呢?
zhaolinger2 2011-03-08
  • 打赏
  • 举报
回复
增加结点时的主要方法如下:


void CTreeData::Add(CTreeData* pclsTreeData)
{
pclsTreeData->m_pParent = this;
m_paChild.Add(pclsTreeData);

HTREEITEM hti = NULL;
TV_INSERTSTRUCT tvstruct;
SetTV_INSERTSTRUCT(tvstruct,pclsTreeData,m_hTI);
pclsTreeData->m_hTI=m_pclsLayerList->InsertItem(&tvstruct);
}


其中TV_INSERTSTRUCT结构里有一个TVITEMEX的结构,里面有一个参数是iIntegral,表示扩展这个区域的高度为标准高度的多少倍。不过目前我对此结构赋值的时候好像也不行,不知道有没有人做过这个参数的,如何使用?谢谢。
VC_ZSY 2011-03-08
  • 打赏
  • 举报
回复
实现并不是那么难,换个思路解决问题
多行 又不想大改控件 可以将第二行就作为一个item一样插入,超过10个再第三行作为一个item插入,具体该item对应几个行,你自己做存储。
思路是这样,代码自己写吧
sxqinge 2011-03-08
  • 打赏
  • 举报
回复
我来分口汤,坐等代码。。。
没钱吃饭 2011-03-08
  • 打赏
  • 举报
回复
你当老子是乞丐?妈的,居然直接要代码来了
zhaolinger2 2011-03-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tandyt 的回复:]
只能用系统自带的那个树形控件么?
[/Quote]

回复:
是的,只能用那个树形控件,允许做少许修改,但是不允许整体重定义。
TandyT 2011-03-07
  • 打赏
  • 举报
回复
只能用系统自带的那个树形控件么?
TandyT 2011-03-07
  • 打赏
  • 举报
回复
要求挺严格的啊

16,472

社区成员

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

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

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