Как нарисовать стиль выделения прямоугольника TTreeView во время AdvancedCustomDrawItem?
Я делаю заказTTreeView
рисование с нуля, используяOnAdvancedCustomDrawItem
событие, и мне интересно, как правильно отрисовать эти выделенные области и горячие прямоугольники на фоне моих элементов для рисования владельцем? Они выполнены в стиле Vista / 7, поэтому я не могу просто залить сплошным цветом.
Я пытался нарисовать свои предметы вcdPostPaint
этап, но если я уйдуDefaultDraw := True
вcdPrePaint
На этапе рисования фона выделения происходит полный рисунок по умолчанию, включая текст элементов.
procedure TForm1.TreeView1AdvancedCustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; Stage: TCustomDrawStage; var PaintImages,
DefaultDraw: Boolean);
begin
case Stage of
cdPreErase:
begin
DefaultDraw := True;
end;
cdPostErase:
begin
DefaultDraw := True;
end;
cdPrePaint:
begin
// I thought this will paint only the selected/hot backgrounds,
// however this will paint whole item, including text.
DefaultDraw := True;
end;
cdPostPaint:
begin
DefaultDraw := False;
// painting my owner-draw text
// .........
end;
end;
PaintImages := False;
end;