2

SpTBX パネルには X 個の閉じるボタンがあり、通常とマウスオーバーの 2 つの状態があります。TPageControl (所有者描画) のキャンバスに同じビットマップを描画したいと考えています。

左の黄色の X アイコンは SpTBX (Office Silver テーマ使用時) です。右の X アイコンが現在のアイコンです。左と同じように描きたいです。これらのビットマップを取得するには?

×アイコン

4

1 に答える 1

1

'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;
于 2013-08-20T22:58:22.957 に答える