TreeView中的多色文本(Embarcadero RAD工作室)

时间:2010-04-07 02:33:20

标签: c++ treeview c++builder

我正在C ++ RAD studio 2010中编写一个软件并得到一个关于TreeView的问题 是否可以在TTreeView组件中使用多色文本?我找不到一个简单的方法,但实现自定义绘图,这似乎是现在的奇怪。是否有任何直接的方式或可能为我做的其他组件?

更新

完成自定义绘图。

void __fastcall TForm1::TreeView1AdvancedCustomDrawItem(TCustomTreeView *Sender, TTreeNode *Node,
    TCustomDrawState State, TCustomDrawStage Stage, bool &PaintImages,
    bool &DefaultDraw)
if (Stage == cdPostPaint)
  {
 TRect rect(Node->DisplayRect(true));
 String redText = "redtext";
 String greenText = " greentext";
 Sender->Canvas->Font->Color = clRed;
 Sender->Canvas->Refresh();
 Sender->Canvas->TextOut(rect.Left, rect.Top, redText);

 rect.Left += Sender->Canvas->TextWidth(redText);

 Sender->Canvas->Font->Color = clGreen;
 Sender->Canvas->Refresh();
 Sender->Canvas->TextOut(rect.Left, rect.Top, greenText);

 rect.Left += Sender->Canvas->TextWidth(greenText);
  }

使用刷新非常重要,以便该方法有效。

此外,在意识到我需要多行文本输出后,我从soft-gems切换到VirtualTreeView组件

1 个答案:

答案 0 :(得分:1)

自定义绘图是唯一的方法。这没有什么奇怪的。许多控件支持自定义绘图。