在程序中动态改变状态栏显示字体的颜色?

010027 2003-07-24 04:27:55
如何在程序中根据需要动态改变状态栏显示字体的颜色?
...全文
98 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
010027 2003-07-27
  • 打赏
  • 举报
回复
季兄果然厉害,名不虚传!兄弟我佩服!

向季兄学习!
sunmedia 2003-07-25
  • 打赏
  • 举报
回复
直接修改StatusBar1->Font->Color就可以了
zihan 2003-07-25
  • 打赏
  • 举报
回复
高,以前都没有注意过这个问题
「已注销」 2003-07-25
  • 打赏
  • 举报
回复
厉害!!!真佩服季老大!!
努力学习!!:)
jishiping 2003-07-25
  • 打赏
  • 举报
回复
StatusBar 是Windows标准控件,正常情况下颜色改不了(就象TButton的颜色一样不能改)。
你需要将StatusBar的属性SimplePanel设成false,同时在StatusBar用鼠标双击,在弹出的
窗口里电鼠标右键,选择Add,新增一个Panel,指定Panel的属性Style为psOwnerDraw,同时
在StatusBar的事件OnDrawPanel里写代码就可以了。

__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
StatusBar1->Font->Color = clRed;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::StatusBar1DrawPanel(TStatusBar *StatusBar,
TStatusPanel *Panel, const TRect &Rect)
{
int nHeight = StatusBar->Canvas->TextHeight(Panel->Text);
StatusBar->Canvas->TextOut(Rect.left+1, Rect.top+(Rect.
Height()-nHeight)/2, Panel->Text);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
StatusBar1->Font->Color = clGreen;
}
010027 2003-07-25
  • 打赏
  • 举报
回复
问题的关键是这样没有效果,我在程序里和属性窗口都设置了,仍然没有作用。
我用的是BCB6,不知你们用的是什么版本。
jishiping 2003-07-24
  • 打赏
  • 举报
回复
直接修改 StatusBar1->Font->Color 的值就可以了。

13,825

社区成员

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

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