2

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

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

x 图标

4

1 回答 1

1

“X”关闭按钮是您可以通过调用来召唤的四种内置模式之一SpDrawGlyphPattern。从'0'开始,四种模式是'close'、'maximize'、'minimize'和'restore',你也可以在程序的源代码中看到。

正如您所猜测的那样,背景是工具栏按钮背景,因为字形用于连接到可停靠面板的内部工具栏。你可以用SpDrawXPToolbarButton.

下面的代码将在表单的画布上生成如图所示的字形(如果当前选择的皮肤是“Office 2007 Silver” )。注意,当状态不是 hot 时,按钮背景是clear

通常,如果您想了解“项目”是如何在 sptbxlib 中绘制的,请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;
于 2013-08-20T22:58:22.957 回答