在Windows中,如果一列太窄而无法显示全文,则tooltip
会以内联方式显示,并可以向您显示缺少的文本:
请注意,提示窗口是内联,其中显示了文本(即,它不在节点的“ ”之下)。
这等同于VirtualTreeview HintMode hmToolTip
:
TVTHintMode = (
hmDefault, // show the hint of the control
hmHint, // show node specific hint string returned by the application
hmHintAndDefault, // same as hmHint but show the control's hint if no node is concerned
hmTooltip // show the text of the node if it isn't already fully shown
);
Explorer还具有显示提示的功能,这是一个提示窗口,可将窗口悬停在所悬停的单元格 near 或 lowness 下方
这在hmHint
的VirtualTreeview中是等效的:
然后您处理 OnGetHint 事件。
现在遇到了阻力:Windows同时执行两个功能, :
hmTooltip
) hmHint
) 但是,如果没有其他要显示的文本,则应该继续仅显示内联工具提示:
如果还不止于此,只需多余的文字:
我想要那个!
我该怎么做?
hmTooltip
,则OnGetHint
不会触发(并且我永远也没有机会添加自定义信息)hmHint
(或hmHintAndDefault
),则会触发OnGetHint
事件,但是树将不再显示截止部分hmHint
,则显示的提示将从不是内联;但会始终位于单元格下方这样的功能可能吗?至少我想我必须重新发明所有的单元格测量方法,以弄清原位文本是否被截断。
OnGetHint
事件的唯一方法hmHint
hmHint
hmTooltip
以使其就位OnGetHint
事件goto 10
我讨厌这样做,因为它暗示了可以寻求的答案或途径。但是想象下面的真值表:
OnGetHint IsTreeTextClipped Hint
========= ================= ==================
Empty No No hint
Empty Yes Inline tooltip
Non-empty No Hint below; shows only GetHint text only
Non-empty Yes Hint below; show both TreeText+CRLF+GetHint text
问题是,如果调用OnGetHint
,则永远不会有内联工具提示。
hmHint
)hmTooltip
模式如何调用 OnGetHint ,并且如果不返回任何内容,请转为hmTooltip
模式?
当然,没有任何事情表明 OnGetHint 必须参与其中。那只是如何将提示文本获取到VirtualTrees进行处理的一个示例。