简单的问题——如何使TPageControl的Tab字体颜色改变?(100分)

  • 主题发起人 叮叮当当
  • 开始时间

叮叮当当

Unregistered / Unconfirmed
GUEST, unregistred user!
更改Font的Color没有效果,但Font的其他属性都正常,就这个Color不行,奇怪了。

实在不行是不是要把 OwnerDraw 属性设为 True,然后在 OnDrawTab 事件里进行文字的改色显示?

不管怎么样,我需要在程序里能更改 Tab (标签栏)字体的颜色。
 
如果不满足于HotTrack属性就OwnerDraw吧
 
当然不满足 HotTrack 的效果,我是要字体变红色。

如果有高手会 OwnerDraw 的写法,请针对这个问题写一段解决代码,谢谢!
 
看看是否对你有所帮助
procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
vDC: HDC;
vBrush: HBRUSH;
vCatpion: string;
vRect: TRect;
vOrgFgClr: COLORREF;
begin
vDC := Control.Canvas.Handle;
vCatpion := TPageControl(Control).Pages[TabIndex].Caption;
vRect := Rect;

vBrush := CreateSolidBrush(ColorToRGB(clBtnFace));
try
FillRect(vDC, Rect, vBrush);
if Active then
vOrgFgClr := SetTextColor(vDC, ColorToRGB(clRed))
else
vOrgFgClr := SetTextColor(vDC, ColorToRGB(clWindowText));

DrawText(vDC, PChar(vCatpion), Length(vCatpion), vRect,
DT_VCENTER or DT_CENTER or DT_SINGLELINE);
SetTextColor(vDC, vOrgFgClr);
finally
DeleteObject(vBrush);
end;
end;
 
chillkwanjane真乃高手也![:)]
 
顶部