正如 David 所指出的,由于您没有使用支持 Unicode 的 Delphi 版本,因此您仅限于使用所有者绘图或“ANSI”字符集。(我的建议是您升级到 Delphi 2009+。Unicode 是数字世界中发生过的最好的事情。使用 Unicode,您可以获得数万个字符(理论上,每种字体!)而不是 127 或 255。这包括各种语言以及技术和数学符号以及各种装饰物。甚至还有一个苯环:U+232C BENZENE RING:⌬)
现在让我们假设升级是不可能的。那么,如果我是你,我会为此使用历史上的“标准字符”,即星号 (*)。在您的情况下,我强烈建议您这样做。
如果你靠,靠,想要一个黑色的方块,那么你必须做所有者绘图。你可以这样做:
// Please don't do this -- see comments below
procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
TabIndex: Integer; const Rect: TRect; Active: Boolean);
const
Padding = 8;
SqSize = 6;
var
capt: string;
r: TRect;
begin
capt := TTabControl(Control).Tabs[TabIndex];
r := Rect;
r.Left := r.Left + Padding;
DrawText(Control.Canvas.Handle, capt, length(capt), r, DT_SINGLELINE or DT_LEFT or DT_VCENTER or DT_END_ELLIPSIS);
r.Left := r.Right - Padding - SqSize;
r.Right := r.Left + SqSize;
r.Top := (r.Bottom - r.Top - SqSize) div 2;
r.Bottom := r.Top + SqSize;
FillRect(Control.Canvas.Handle, r, GetStockObject(BLACK_BRUSH));
end;
但是请注意,这将禁用视觉主题!看起来会很可怕!请不要这样做!