TListBox 导航条 绘制

procedure TForm1.btn1Click(Sender: TObject);
begin
  lst1.AddItem('账户设置',nil);
  lst1.AddItem('报警设置',nil);
  lst1.AddItem('启动选项',nil);
  tv1.Items.AddObject()
  tv1.Items.Add().Data;
end;

procedure TForm1.lst1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect;
  State: TOwnerDrawState);
var
  ItemText : string;
begin
  if odSelected in State then
    (Control as TListBox).Canvas.Brush.Color := $00ECCCB9
  else
    (Control as TListBox).Canvas.Brush.Color := $00F8ECE5;
 (Control as TListBox).Canvas.FillRect(Rect);
 ItemText := (Control as TListBox).Items[Index];
  InflateRect(Rect,-3,0);
  DrawText((Control as TListBox).Canvas.Handle,PChar(ItemText),Length(itemText)
 ,Rect,DT_VCENTER or DT_SINGLELINE or DT_END_ELLIPSIS or 0);
end;

stype要设为 lbOwnerDrawVariable

posted @ 2016-08-19 17:59  海蓝7  阅读(218)  评论(0编辑  收藏  举报