void __fastcall TForm1::StatusBar1DrawPanel(TStatusBar *StatusBar,
TStatusPanel *Panel, const TRect &Rect)
{
if (Panel->Index==1)
{
Panel->Style=psOwnerDraw;
if(Start)
{
StatusBar1->Canvas->Pen->Color=clRed;
StatusBar1->Canvas->Brush->Color=clRed;
StatusBar1->Canvas->Ellipse(Rect.left,Rect.top,Rect.left+15,Rect.top+15);
}
else
{
StatusBar1->Canvas->Pen->Color=clBlue;
StatusBar1->Canvas->Brush->Color=clBlue;
StatusBar1->Canvas->Ellipse(Rect.left,Rect.top,Rect.left+15,Rect.top+15);
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Start=!Start;
StatusBar1->Repaint();
}
bool Start=false;//全局变量,要记得定义
Panel->Index==1你可以改为你需要的
博客给出一段代码示例,定义了全局变量 Start 。在 StatusBar1DrawPanel 函数中,根据 Start 的值,在状态栏特定面板绘制不同颜色的椭圆。在 Button1Click 函数里,点击按钮会改变 Start 的值并刷新状态栏。
57

被折叠的 条评论
为什么被折叠?



