我应该在Windows的TStatusBar
标准外观和黑色外观之间切换:一样,只是黑色。
我喜欢TStyleManager
设置的样式,但是样式管理器使整个应用程序在某些显示器上显示乱码,因此我试图在不使用它的情况下设置颜色。
对于TStatusBar
,有一个DrawPanel
方法,我可以自己重写并执行绘图:
procedure TMyStatusBar.DrawPanel(Panel: TStatusPanel; const Rect: TRect);
var
txt: string;
r: TRect;
begin
if Panel.Style = psOwnerDraw then begin
if _nightMode then begin
Canvas.Brush.color := clBlack;
Canvas.Font.color := clWhite;
end
else begin
Canvas.Brush.color := clBtnFace;
Canvas.Font.color := clWindowText;
end;
Canvas.FillRect(Rect);
r := Rect;
txt := Panel.Text;
Canvas.TextRect(r, txt, [tfCenter]);
end
else
inherited;
end;
有一个问题:此方法绘制面板内容,但边框保持原样。