SpTBX パネルには X 個の閉じるボタンがあり、通常とマウスオーバーの 2 つの状態があります。TPageControl (所有者描画) のキャンバスに同じビットマップを描画したいと考えています。
左の黄色の X アイコンは SpTBX (Office Silver テーマ使用時) です。右の X アイコンが現在のアイコンです。左と同じように描きたいです。これらのビットマップを取得するには?
'X' 閉じるボタンは、 を呼び出して呼び出すことができる 4 つの組み込みパターンの 1 つですSpDrawGlyphPattern
。手順のソースコードにもあるように、「0」から始まる「閉じる」「最大化」「最小化」「元に戻す」の4つのパターンがあります。
グリフはドッキング可能なパネルに接続された内部ツールバーで使用されるため、背景はご想像のとおりツールバー ボタンの背景です。で描けることSpDrawXPToolbarButton
。
以下のコードは、フォームのキャンバス上の画像 (現在選択されているスキンが「Office 2007 Silver」の場合) に示されているグリフを生成します。状態が hot でない場合、ボタンの背景は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;