3

TListBoxの行にいくつかのテキストとともにアイコンを所有者が描画するDelphi6アプリケーションがあります。のTListBoxスタイルはに設定されlbOwnerDrawVariableます。私が抱えている問題は、アイテムが選択されたときです。選択した行の背景色を変更するためにリストボックスで使用されるハイライト色は、アイコンに透明なピクセルがあり(目に見える証拠に基づく私の仮定)、それらのピクセルが背景色に変更されて台無しになるため、アイコンがひどく見えます。画像。この問題を解決できるように、透明なピクセルを特定の色で強制的に描画する簡単な方法はありますか?このメソッドを使用して、キャンバスTImageList.Draw()にアイコンを描画しています。TListBox

4

1 に答える 1

4

'dsNormal'に設定し、背景として使用する色を次のように設定して、Drawメソッドを使用できます。DrawingStyleBkColor

ImageList1.BkColor := clHighlight;
ImageList1.Draw(Canvas, 0, 0, 0, dsNormal, itImage);

DrawDelphi 6に「DrawingStyle」によるオーバーロードがない場合、次のようになります。

ImageList1.BkColor := clHighlight;
ImageList1.DrawingStyle := dsNormal;
ImageList1.Draw(Canvas, 0, 0, 0);
于 2011-12-13T13:29:27.773 に答える