无法控制ListView在vsIcon模式下被选中以外Item文字的字体。
zcs_1 2003-04-16 04:01:09 在窗体设计器上增加一个ListView,设其ViewStyle属性为vsIcon,然后在ListView上利用ItemEditor增加两个Item。最后在ListView的OnAdvancedCustomDrawItem事件上增加如下代码,其目的是修改被选中Item文字的背景色:
var
r: TRect;
begin
with Sender.Canvas do
if cdsSelected in State then
begin
Brush.Color := clYellow; //颜色接口:背景颜色
Pen.Color := $009CDEF7; //颜色接口:边框颜色
r := Item.DisplayRect(drLabel);
FillRect(r);
DrawText(Handle,
PChar(Item.Caption),
Length(Item.Caption),
R,
DT_WORDBREAK or DT_CENTER);
end;
end;
虽然我的目的达到了,但是出现了一个问题,就是选中一个Item后,再选择另外一个Item时,前一个被选择的Item的字体发生了变化,不是原来的字体了。如何能够使前一个被选择的Item的字体保持不变呢?
另外,我发现如果ListView中的Item多于两个的时候不会发生这种情况,到底是为什么呢?