自绘TreeCtrl,不知道item宽度怎么修改(不是控件宽度)

vtmain 2012-04-24 10:35:13
自绘了一个tree,加了一个自绘滚动条之后,发现tree的item长度是固定的,如果项目文本太长,即使把滚动条拉到最右端,还是有很大一部分被截断,显示不出来,求一个改变tree默认宽度的方法,各位前辈请帮忙看一下,谢谢

我自己试过的办法,先是从滚动条入手,SetScrollInfo/SetScrollRange都无效,后来换用系统滚动条也是同样效果,就转向treectrl查找问题,TVITEMEX结构体里有一个pszText,指向文本缓冲区的,cchTextMax是缓冲区长度,好像跟item也没多大关系,而且MSDN对pszText解释的内容中也明确了item最大显示长度在系统默认是260,很明显,我的文本远远不够这个长度,为什么截断?哪怕是把自绘的item空白缩进也给算进去,也不够这个260,求解决办法
...全文
109 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
vtmain 2012-04-27
  • 打赏
  • 举报
回复
无人关注,结贴
vtmain 2012-04-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

这么说item是你自己绘的?
那怎么绘制不是你说了算么
[/Quote]
是的,似乎是rect的问题,不过试了修改rect.right还是无效果,按理说OnCustomDraw绘制单条Item应该可以做到这个,缩进和滚动都是修改rect.left实现的,没招了,我再等两天,看看别的朋友有没有好的建议,谢谢老哥关注
向立天 2012-04-24
  • 打赏
  • 举报
回复
你重绘滚动条了?
按理treectrl原生支持根据显示内容调整长度
是不是你在某些绘图操作中设置了裁剪区却没有及时恢复
向立天 2012-04-24
  • 打赏
  • 举报
回复
这么说item是你自己绘的?
那怎么绘制不是你说了算么
vtmain 2012-04-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
你重绘滚动条了?
按理treectrl原生支持根据显示内容调整长度
是不是你在某些绘图操作中设置了裁剪区却没有及时恢复
[/Quote]

一个OnCustomDraw就包括了大部分基本绘图,仔细看了一下也没有什么,又试了DT_END_ELLIPSIS之类的文字属性,还是没有效果

15,978

社区成员

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

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