问个问题:如何改变PageControl中切换页的颜色。庆祝5条内裤到来,放分!

yesry 2003-07-09 09:44:06
我们知道,很多Windows的控件都有固定的颜色,但是,为了外观,我们需要改变颜色,大家有什么好的提议?


如果不加班,我可以天天穿干净的内裤(一个星期洗一次,想找个女朋友帮我洗洗),双休不穿了。
...全文
53 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
crysword 2003-07-09
  • 打赏
  • 举报
回复
学习
xuv2002 2003-07-09
  • 打赏
  • 举报
回复
to wyz52126(yizhong) :

将PageControl的OwnerDraw 设为true 之后
在其OnDrawTab事件里面添加代码
void __fastcall TfmSetup::PageControl1DrawTab(
TCustomTabControl *Control,
int TabIndex, const TRect &Rect, bool Active)
{
Control->Canvas->Brush->Color = Active ? clRed : clYellow;
Control->Canvas->FillRect(Rect);
SetBkMode(Control->Canvas->Handle,TRANSPARENT);
AnsiString str = PageControl1->Pages[TabIndex]->Caption;
TSize size = Control->Canvas->TextExtent(str);
int left = (Rect.Width()-size.cx+1)/2;
int top = (Rect.Height()-size.cy+1)/2;
Control->Canvas->Font->Color = clBlue;
Control->Canvas->TextOut(Rect.Left+left,Rect.Top+top,str);
}
这是较比简单的一个画PageControl表头的例子
FlySky01 2003-07-09
  • 打赏
  • 举报
回复
恭喜哦
同意季头
int64 2003-07-09
  • 打赏
  • 举报
回复
自己画就比较复杂了
yesry 2003-07-09
  • 打赏
  • 举报
回复
如果有人解决以下问题
http://expert.csdn.net/Expert/TopicView1.asp?id=1956642

可以得到300分左右。





如果有人解决以下问题
http://expert.csdn.net/Expert/TopicView1.asp?id=1956642

可以得到300分左右。





如果有人解决以下问题
http://expert.csdn.net/Expert/TopicView1.asp?id=1956642

可以得到300分左右。





如果有人解决以下问题
http://expert.csdn.net/Expert/TopicView1.asp?id=1956642

可以得到300分左右。





wyz52126 2003-07-09
  • 打赏
  • 举报
回复
我是初学者,请问怎么个画法啊/>?

我根本就不清楚什么叫"画",前辈能说说吗/?
jishiping 2003-07-09
  • 打赏
  • 举报
回复
一个办法,将PageControl的属性OwnerDraw设为true,然后在事件OnDrawTab里自己画。
ccrun.com 2003-07-09
  • 打赏
  • 举报
回复
劫分。恭喜。
xuv2002 2003-07-09
  • 打赏
  • 举报
回复
先恭喜恭喜了

PageControl 只支持Tabs (表头) 重画

假如楼主是想给TabSheet 页面换颜色的话

恐怕还得另想办法
netsys2 2003-07-09
  • 打赏
  • 举报
回复
恭喜了
jishiping 2003-07-09
  • 打赏
  • 举报
回复
一个办法,将PageControl的属性OwnerDraw设为true,然后在事件OnDrawTab里自己画。
jishiping 2003-07-09
  • 打赏
  • 举报
回复
一个办法,将PageControl的属性OwnerDraw设为true,然后在事件OnDrawTab里自己画。
猎人66 2003-07-09
  • 打赏
  • 举报
回复
PageControl是支持重画的
恭喜
jiangchun_xn 2003-07-09
  • 打赏
  • 举报
回复
PageControl是支持重画的,你试试。(不过很麻烦!:))

恭喜!我混4年了才两。
yesry 2003-07-09
  • 打赏
  • 举报
回复
既然庆祝,当天结帖。
zxcdewq 2003-07-09
  • 打赏
  • 举报
回复
好啊,我也块加三角标了
nanhui 2003-07-09
  • 打赏
  • 举报
回复
恭喜楼主

正如楼上各位所说,这需要通过重画来实现
又或者通过重新继承,创建一个新的组件(当然也是需要重画)
duduwolf 2003-07-09
  • 打赏
  • 举报
回复
在我的程序里,我就这样控制pagecontrol的颜色的:
void __fastcall TFrmSellQuery::PageControl1DrawTab(
TCustomTabControl *Control, int TabIndex, const TRect &Rect,
bool Active)
{
TCanvas *Canvas = Control->Canvas;
Canvas->Font->Color = clBlack;
int Left = Rect.Left+(Rect.Width()-Canvas->TextWidth(PageControl1->Pages[TabIndex]->Caption))/2;
int Top = Rect.Top+(Rect.Height()-Canvas->TextHeight(PageControl1->Pages[TabIndex]->Caption))/2;
if(Active)
{
Canvas->Pen->Color = (TColor)0x0087CDFC;
Canvas->Pen->Width = 2;
Canvas->Rectangle(TRect(Rect.Left+5,Rect.Top+5,Rect.Right-5,Rect.Bottom-5));
Canvas->TextRect(Rect,Left,Top,PageControl1->Pages[TabIndex]->Caption);
}
else
Canvas->TextRect(Rect,Left,Top+3,PageControl1->Pages[TabIndex]->Caption);
}
yougu110 2003-07-09
  • 打赏
  • 举报
回复
先恭喜!

再学习!!

up!!!
jbz 2003-07-09
  • 打赏
  • 举报
回复
gz

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧