我正在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组件
答案 0 :(得分:1)
自定义绘图是唯一的方法。这没有什么奇怪的。许多控件支持自定义绘图。