pagecontrol 怎么重新绘制 上面的caption为蓝色字体。 ( 积分: 100 )

  • 主题发起人 主题发起人 g961681
  • 开始时间 开始时间
G

g961681

Unregistered / Unconfirmed
GUEST, unregistred user!
pagecontrol 怎么重新绘制 上面的caption为蓝色字体。
通过ownerdraw可以实现,但是其他窗体覆盖一下就没了,怎么才能做到不消失啊!
 
pagecontrol 怎么重新绘制 上面的caption为蓝色字体。
通过ownerdraw可以实现,但是其他窗体覆盖一下就没了,怎么才能做到不消失啊!
 
1.PageControl1.OwnerDraw := True;

2.procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
c: TCanvas;
s: string;
begin
c := PageControl1.Canvas;
case TabIndex of
0: begin
c.brush.Color := clRed;
s := 'tabsheet1';
end;
1: begin
c.brush.Color := clBlue;
s := 'tabsheet2';
end;
end;
c.FillRect(Rect);
c.TextOut(Rect.Left + 2, Rect.Top + 2, s);
end;
 
Raize里有一个RzPageControl能实现这种功能。
 
OnDrawTab
在这里面修改
with Control do
Begin
if Active then
canvas.brush.color:=clMoneyGreen//$005AA6FF//$00DAC478//clMoneyGreen
else
canvas.brush.color:=clSkyBlue;
canvas.Polygon([Point(Rect.Left,rect.top),Point(Rect.right,rect.top),
Point(Rect.Right,rect.Bottom),Point(Rect.Left,Rect.Bottom)]);
Canvas.TextOut(Rect.Left+5,Rect.top+5,pages[TabIndex].Caption);
end;
 
设置它的hottrack属性为true 就可以了,
 
我不想把ownerdraw置为true,但又想调用ondrawtab的事件!
怎么加程序!
 
多人接受答案了。
 
后退
顶部