大家帮忙看一下我写的设置ListBox的横向滚动条的小程序,为什么显示得不对呢?(15分)

  • 主题发起人 主题发起人 bryantd
  • 开始时间 开始时间
B

bryantd

Unregistered / Unconfirmed
GUEST, unregistred user!
//设置横向滚动条
procedure TFormMain.SetHorizontalScrollBar(CustomListBox:TCustomListBox);
var i, MaxWidth:Integer;
begin
MaxWidth:=0;
for i:=0 to CustomListBox.Items.Count-1 do
if MaxWidth<CustomListBox.Canvas.TextWidth(CustomListBox.Items) then
MaxWidth:=CustomListBox.Canvas.TextWidth(CustomListBox.Items);
SendMessage(CustomListBox.Handle, LB_SETHORIZONTALEXTENT, MaxWidth+5, 0);
end;

在向ListBox中添加条目时,调用这个过程,SetHorizontalScrollBar(ListBox1);但是并没有像我预想的那样,横向滚动条应该显示到最大条目那个长度。
这是为什么呢??哪里不对呢?我觉得问题出在MaxWidth+5这个参数上,请高手们帮忙解释一下。
 
一个朋友说,我这个问题是因为Listbox控件中的字体造成的,所以它的最大长度的计算方法不能用CustomListBox.Canvas.TextWidth(CustomListBox.Items) ,请问应该怎么办呢?
 
后退
顶部