SpTBX 面板有 X 关闭按钮,有 2 种状态:通常和鼠标悬停。我想在我的画布上,在 TPageControl(所有者绘制)上绘制相同的位图。
左侧黄色 X 图标是 SpTBX(使用 Office Silver 主题时)。右 X 图标是我目前的图标。我想画和左边一样的。如何获得这些位图?
“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;