垂直标签(在TPageControl中)未正确呈现。标签标题中的文字丢失了。 在互联网上搜索,我发现这只是Win XP的典型特征,只有在主题应用于这些控件时才会发生。它适用于Win Vista及以上版本:
http://www.codeproject.com/Questions/153186/Vertical-Text-in-a-Tab-Control-Will-Not-Display http://www.windows-api.com/microsoft/VB-Controls/30463755/trouble-with-tabcontrol.aspx
我正在考虑禁用主题而不是整个项目,只在TTab或TPageControl上,但是如何? 还有其他快速解决方案吗?
Delphi XE
答案 0 :(得分:2)
并非所有Windows内置选项卡控件的功能都支持主题。垂直对齐的标签就是这样一个功能。
第一个链接文章中的代码显示了如何禁用控件的主题。在其上调用SetWindowTheme
,为两个字符串参数传递空字符串或简单空格。 (文档说“空字符串”,但随后演示了一个包含空格的单字符字符串。)
请注意,如果调用了VCL控件的RecreateWnd
函数,则需要重新应用主题设置,因为它将具有新的窗口句柄。处理它的一种方法是创建一个后代控件并覆盖CreateWnd
,它在创建窗口句柄后调用。这是将特定于句柄的更改应用于窗口的最佳机会。