MaxWidth := 0; //给LISTBOX加上水平滚动条 for i := 0 to listbox1.Items.Count - 1 do if MaxWidth < listbox1.Canvas.TextWidth(listbox1.Items.Strings[i]) then MaxWidth := listbox1.Canvas.TextWidth(listbox1.Items.Strings[i]); SendMessage(listbox1.Handle, LB_SETHORIZONTALEXTENT, MaxWidth+20, 0); 当宽度超过的时候 就自动加上了滚动条! 在FormCreate事件中写上就行了可以结帐了吧:)
SendMessage(listbox1.Handle, LB_SETHORIZONTALEXTENT, i, 0);
参数: hWnd:根据参数wSBflags的值,处理对雷体或滚动条的处理。 wSBflags:指定滚动条的类型。这个参数可以是下面的值,含义如下: SB_BOTH:可以将指定窗体的水平及垂直滚动条上的箭头激活或使其失效。此时参数hWnd一定指向窗体。 SB_CTL:标识滚动条控制器。此时参数必须指向滚动条控制器。 SB_HORZ:可以将指定窗体的水平滚动条上的箭头激活或使其失效。此时参数hWnd一定指向窗体。 SB_VERT:可以将指定窗体的垂直滚动条上的箭头激活或使其失效。此时参数hWnd一定指向窗体。 wArrows:指定滚动条上的箭头是否被激活或是无效,并指出哪一个箭头位有效或是无效。这个参数可以是下面的值,其含义如下: ESB_DISABLE_BOTH:使滚动条上两面的箭头功能无效。 ESB_DISABLE_DOWN:使垂直滚动条上下面的箭头功能无效。 ESB_DISABLE_LEFT:使水平滚动条上左边箭头功能无效。 ESB_DISABLE_LTUP:使水平滚动条上左边箭头或垂直滚动条上面的箭头功能无效。 ESB_DISABLE_RLGHT:使水平滚动条上右边箭头功能无效。 ESB_DISABLE_RTDN:使水平滚动条上右边箭头或垂直滚动条下边的箭头功能无效。 ESB_DISABLE_UP:使垂直滚动条上向下箭头功能无效。 ESB_ENABLE_BOTH:激活滚动条两面的箭头。 返回值:如果被指定的箭头被激活或未被激活,其返回值为非零;如果箭头已经是被请求的状态或是出现错误,那么返回值为零。若想获得更多的错误信息,请调用GetLastError函数。
祝:身体健康!
for i := 0 to listbox1.Items.Count - 1 do
if MaxWidth < listbox1.Canvas.TextWidth(listbox1.Items.Strings[i]) then
MaxWidth := listbox1.Canvas.TextWidth(listbox1.Items.Strings[i]);
SendMessage(listbox1.Handle, LB_SETHORIZONTALEXTENT, MaxWidth+20, 0);
当宽度超过的时候 就自动加上了滚动条!
在FormCreate事件中写上就行了可以结帐了吧:)
SendMessage(ListBox.Handle,LB_SetHorizontalExtent,2000,longint(0));
//2000不够,可再加!当然你也可测出最大的String长度后,将2000变为该长度
http://www.csdn.net/Develop/read_article.asp?id=14180