我用的是TTBXButton,如何改变它的背景颜色?或者其他的按钮,可以改变背景颜色都行。如:TButton,TSpeedButton,TBitBtn等急啊,大虾们帮个忙啊,我之前用的是pannel实现按钮的效果,也重写过TPageControl,现在不需要了,运行起来效果不好。重写DrawTab:
procedure TGPageControl.DrawTab(TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
  sCaption: string;
  oRect: TRect;
begin
  if TabIndex = Self.TabIndex then
  begin
    with Self.Canvas do
    begin
      Font.Color  := clWhite;
      Brush.Color := clHighlight;
      FillRect(Rect);
    end;
  end;
  sCaption := Self.Pages[Self.TabIndex].Caption;
  oRect := Rect;
  DrawText(Self.Canvas.Handle, Pchar(sCaption), Length(sCaption),
    oRect, DT_SINGLELINE or DT_CENTER or DT_VCENTER);
end;

解决方案 »

  1.   

    自己重绘,或者贴底图,或者采用其他可以改变颜色的控件带地button,不就是个click吗
      

  2.   


    重绘了,Canvas是万能的,但是有些控件没有Canvas属性,该如何处理?
      

  3.   

    是不是可以用speedbutton,导入个图片。图片就像怎么画就怎么画了。
      

  4.   

    自己创建一个Canvas对象。
    TControlCanvas继承自TCanvas
    //定义
    FCanvas: TControlCanvas;
    //操作
    FCanvas := TControlCanvas.Create;
    FCanvas.Control := Self;在这里你可以操作这个FCanvas实现 
      

  5.   


    嗯,TCanvas研究了一下,用起来真好~谢谢你们啦~对了,一个画布的内容如何复制到另外一个画布上面?比如:
    FOldCanvas,FNewCanvas: TCanvas;
    FNewCanvas := FOldCanvas; //这样是不行的,要一次操作该改如何处理?
      

  6.   

    不一个像素点的复制,也不用TBitmap辅助