TListBoxの行にいくつかのテキストとともにアイコンを所有者が描画するDelphi6アプリケーションがあります。のTListBox
スタイルはに設定されlbOwnerDrawVariable
ます。私が抱えている問題は、アイテムが選択されたときです。選択した行の背景色を変更するためにリストボックスで使用されるハイライト色は、アイコンに透明なピクセルがあり(目に見える証拠に基づく私の仮定)、それらのピクセルが背景色に変更されて台無しになるため、アイコンがひどく見えます。画像。この問題を解決できるように、透明なピクセルを特定の色で強制的に描画する簡単な方法はありますか?このメソッドを使用して、キャンバスTImageList.Draw()
にアイコンを描画しています。TListBox
1277 次
1 に答える
4
'dsNormal'に設定し、背景として使用する色を次のように設定して、Draw
メソッドを使用できます。DrawingStyle
BkColor
ImageList1.BkColor := clHighlight;
ImageList1.Draw(Canvas, 0, 0, 0, dsNormal, itImage);
Draw
Delphi 6に「DrawingStyle」によるオーバーロードがない場合、次のようになります。
ImageList1.BkColor := clHighlight;
ImageList1.DrawingStyle := dsNormal;
ImageList1.Draw(Canvas, 0, 0, 0);
于 2011-12-13T13:29:27.773 に答える