2

我有一个带有 X 标头和 x 根的 virtualstringtree(启用了网格线)。我想将子项(至少 1 个)添加到只有 1 个文本位于中间并通过所有标题(独立)的根。因此,无论我是否调整标题等的大小,文本始终与 VirtualStringTree 的实际客户端大小对齐。

这可能吗?如果是这样,怎么做?

在此处输入图像描述

4

1 回答 1

4

这听起来像单元格合并。这在此处进行了讨论,例如,解决方案包含toAutoSpanColumnsTreeOptions.AutoOptions.

如果您想要居中对齐的文本,请OnDrawText相应地覆盖。就像是:

procedure TForm1.VirtualStringTree1DrawText(Sender: TBaseVirtualTree;
  TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
  const Text: WideString; const CellRect: TRect; var DefaultDraw: Boolean);
var
  r: TRect;
begin
  r := CellRect;
  Windows.DrawTextW(TargetCanvas.Handle, PWideChar(Text), Length(Text), r, DT_CENTER or DT_VCENTER);
  DefaultDraw := False;
end;
于 2012-08-09T12:33:53.020 回答