SpTBX:在SpTbx面板上绘制我的画布X图标

时间:2013-08-20 16:36:59

标签: delphi sptbxlib

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

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

x icon

1 个答案:

答案 0 :(得分:1)

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

背景是您猜测的工具栏按钮背景,因为字形用于连接到可停靠面板的内部工具栏。您可以使用SpDrawXPToolbarButton进行绘制。

以下代码将生成图片中显示的字形(如果当前选定的外观为'Office 2007 Silver'),则表单将显示在窗体的画布上。请注意,当状态不热时,按钮背景为 clear

一般情况下,如果您想了解如何在sptbxlib中绘制'item',请在'TSpTBXItemViewer.Paint的开头'sptbxitem.pas'中设置断点并遵循代码路径。

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;