我需要一个带渐变的工具栏,但我想要没有热门曲目的普通按钮。我作为TToolBar类做:
我的代码:
procedure TForm7.ToolBar1CustomDraw(Sender: TToolBar; const ARect: TRect;
var DefaultDraw: Boolean);
begin
GradientFillCanvas(sender.Canvas, clWindow, $00D6D6D6, ARect, gdVertical); //a GraphUtil unit
end;
ComCtrls
单位的工具栏功能:
function TToolBar.GradientDrawToolBar(const ARect: TRect): Boolean;
begin
Result := True;
if gdoGradient in GradientDrawingOptions then
GradientFillCanvas(Canvas, FGradientStartColor, FGradientEndColor,
ARect, GradientDirection);
end;
为什么我会有不同的结果?
GetShadowColor(clBtnFace, -25) = $00D6D6D6
对我来说
答案 0 :(得分:2)
如果检查ComCtrls的源,则FGradientEndColor的值为GetShadowColor(clBtnFace,-25),它基于系统颜色,可能会根据Windows外观设置而更改。尝试在自定义绘图代码中使用相同的值,而不是$ 00D6D6D6。