发信人: mengy (LEAR DLLS 命令时,将从内存中清除), 信区: BorlandDev
标  题: 如何给TListBox加上水平的滚动条
发信站: 哈工大紫丁香 (2001年03月13日17:35:46 星期二), 转信

如何给TListBox加上水平的滚动条?  <<上一篇 下一篇>> 
      Delphi 的 TListBox元件自动实现了垂直的滚动条,当ListBox不能显示全部
的菜单(Item)时,这个垂直的滚动条就会出现。然而,当菜单的宽度比ListBox宽时
水平的滚动条却不会出现。以下的程序就是处理这个问题的。 

    在你的Form的OnCreate事件中添加以下代码: 
procedure TForm1.FormCreate(Sender: TObject); 
var 
  i, MaxWidth: integer; 
begin 
  MaxWidth := 0; 
  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+2, 0); 

end; 

    以上的代码首先得到ListBox中最长Item的长度,然后用
LB_SETHORIZONTALEXTENT消息设置ListBox的水平滚动的宽度,宽度加2是为了给右
面留2个点的边。 
  

 
 

--

       大海无边天做岸
               山登绝顶我为风

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.227.121]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.020毫秒