Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi SpTBX:在我的画布上绘制X图标,就像在SpTBX面板上一样_Delphi_Sptbxlib - Fatal编程技术网

Delphi SpTBX:在我的画布上绘制X图标,就像在SpTBX面板上一样

Delphi SpTBX:在我的画布上绘制X图标,就像在SpTBX面板上一样,delphi,sptbxlib,Delphi,Sptbxlib,SpTBX面板有X个关闭按钮,有两种状态:普通和鼠标悬停。我想在画布上,在TPageControl(所有者绘制)上绘制相同的位图 左黄色X图标为SpTBX(使用Office银色主题时)。右X图标是我的当前图标。我想画和左边一样的。如何获取这些位图 X'-close按钮是四种内置模式之一,您可以通过调用SpDrawGlyphPattern来调用它。从“0”开始,这四种模式是“关闭”、“最大化”、“最小化”和“还原”,您也可以在过程的源代码中看到这四种模式 正如您所猜测的,背景是工具栏按钮背景,因为

SpTBX面板有X个关闭按钮,有两种状态:普通和鼠标悬停。我想在画布上,在TPageControl(所有者绘制)上绘制相同的位图

左黄色X图标为SpTBX(使用Office银色主题时)。右X图标是我的当前图标。我想画和左边一样的。如何获取这些位图


X'-close按钮是四种内置模式之一,您可以通过调用
SpDrawGlyphPattern
来调用它。从“0”开始,这四种模式是“关闭”、“最大化”、“最小化”和“还原”,您也可以在过程的源代码中看到这四种模式

正如您所猜测的,背景是工具栏按钮背景,因为图示符用于连接到可固定面板的内部工具栏。您可以使用
SpDrawXPToolbarButton
绘制的

下面的代码将在表单画布上生成如图片所示的图示符(如果当前选择的皮肤为“Office2007Silver”)。请注意,当状态为非热时,按钮背景是清晰的

通常,如果您想了解如何在sptbxlib中绘制“项”,请在“sptbxitem.pas”中的
TSpTBXItemViewer.Paint
开头放置一个断点,然后按照代码路径进行操作

procedure TForm1.Button1Click(Sender: TObject);
var
  R: TRect;
begin
  R := Rect(20, 20, 35, 35);
  SpDrawXPToolbarButton(Canvas, R, sknsHotTrack, sknSkin, cpNone);
  SpDrawGlyphPattern(Canvas, R, 0,
      CurrentSkin.GetTextColor(skncToolbarItem, sknsNormal));
end;