RTL模式下的TTreeView垂直滚动条样式

时间:2017-11-20 00:54:31

标签: c++ c++builder right-to-left vcl

似乎在Windows中从右到左模式存在很多问题。我正在努力修复一些并设法解决一些问题,还有一些需要修复我们的应用程序。我发现一个奇怪的问题是使用TTreeView控件上的垂直滚动条。

使用SetWindowLong将BiDiMode更改为bdRightToLeft时,我已设法正确定位TreeView和垂直滚动条的内容:

if (TreeView2->BiDiMode == bdRightToLeft)
{
     LONG ExStyle = GetWindowLong(TreeView2->Handle, GWL_EXSTYLE);
     SetWindowLong(TreeView2->Handle, GWL_EXSTYLE, WS_EX_RTLREADING | WS_EX_RIGHT | WS_EX_LAYOUTRTL | WS_EX_NOINHERITLAYOUT);
}

但是,滚动条会丢失自定义样式,如附加图像中所示。

enter image description here

任何想法如何解决这个问题。创建自定义TScrollingStyleHook是解决此问题的正确/唯一方法吗?

编辑:仍然无法修复此问题。随后的问题:

  • TTreeView或TTreeViewStyleHook的哪种方法绘制每个文本 节点?
  • 看来TreeViewStyleHook.Paint或 永远不会调用TScrollingStyleHook.Paint。为什么会这样?

由于

IDE版本信息:Embarcadero C ++ Builder 10.2版本25.0.27659.1188

0 个答案:

没有答案