麻烦给我的TreeView加个省略号。SOS!(100分)

W

wheel

Unregistered / Unconfirmed
GUEST, unregistred user!
首先,请您看一下Delphi的Project Manager.
看到了吧,这个TreeView有类似ListView的功能。

再看看,当宽度不够时,TreeView的节点会显示为'abcd...',就象ListView一样.
而不是像TreeView默认的那样显示简单显示为'abcd';

就是这个省略号。当然,您知道,我就是要ProjectManager这个效果,就是说,
其实我的TreeView足够宽,但我想它根据我设定的宽度来显示。

PS:不会叫我自己计算宽度改Node.Text吧?(我现在就是这么干的)
如果用控件的话,最好是有源码,而且是从ComCtl32的标准TreeView封装来的。

分分不够您开口。Thanx.
 
怎么没人理我呢?,郁闷ing

其实我希望这个问题能够抛砖引玉。大家随便谈谈也好啊。
 
用spy++看那个窗口,那个类似treeview的是一个ttreecontrol,应该是borland自己写的了,看来你只好修改treeview
啦!!!!!
 
这个好多资料上有啊,
我做的是checklistbox上这样显示的,然后鼠标移动到上面是hint提示出全部内容
可惜,代码现在不在手头
 
windows的资源管理器都不能.....
你把HINT打开鼠标移动到上面是hint提示出全部内容,这个不用自己写代码的

 
重画
DrawTextEx
DT_PATHELLIPSES 如字串包含了 / 字符,就用省略号替换字串内容,使其能在矩形中全部容下。例如,一个很长的路径名可能换成这样显示——c:/windows/.../doc/readme.txt
 
DT_ENDELLIPSES 倘若字串不能在矩形里全部容下,就在末尾显示省略号
 
在 draw的事件中用DrawTextEx
参数用DT_ENDELLIPSES// 倘若字串不能在矩形里全部容下,就在末尾显示省略号
 
谢谢 hfghfghfg.我看帮助的时候怎么没注意到这个参数呢。

不过,DrawTextEx只能被NT以上系统支持,不敢用。[:(]
还有就是,如果是在OnCustomDrawItem中自己DrawText的话,TreeView默认的一样会把Item
画出来,搞得我的TreeView乱乱的。
用DefaultDraw:=False?那岂不是所有的线啊,图啊的都要我自己画?

有什么好办法呢?期待大家的讲解。[?]
 
to 火龙真人
鼠标移动到上面不用自己写代码就可以hint出来么?我当时的是checklistbox,还send了一条
message才取出鼠标下的是哪条item的,然后更改hint内容,你的方法如何做的,说一下,这样的
话做起来就不用那么麻烦了,谢谢
 
我说的是TREEVIEW只要把HINT里什么内容都不填,而且还要把SHOWHINT属性
设置为FALSE当 TREEVIEW和LISTVIEW中间的间隔条把TREEVIEW不完全遮住
也就是说TREEVIEW里目录里的字不能全部显示的时候,鼠标移动到上面的时候
他自己就回出现HINT而对于没被遮住的字却不会有HINT显示啊,我敢保证
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
顶部