请问如何去除ListBox的滚动条?
包括横向滚动条(是用API加上去的)?

解决方案 »

  1.   


    去除横向滚动条:
      SendMessage List1.hwnd, LB_SETHORIZONTALEXTENT, 0, ByVal 0&
      

  2.   

    谢谢楼上!
    但现在问题主要还是出在纵向滚动条上。
    因ListBox默认的状态是没有横向的,总有纵向滚动条。
    现因特殊需要,能否在不使用其它控件的情况下,直接对ListBox发送不显示滚动条的指令?
    我想可能有API能获得其最大、最小值、及步长,应该也有控制其滚动条显示的指令?
      

  3.   

    既然横向都有了,纵向一定有啊滚动的消息就是
    Public Const WM_VSCROLL = &H115
    Public Const WM_HSCROLL = &H114
      

  4.   

    我想本版主题应该更明确一下:那到底能不能、如何去除ListBox的>>>纵向<<<滚动条?承蒙赐教!
      

  5.   

    SendMessage List1.hwnd, LB_SETVERTICALEXTENT, 0, ByVal 0&
      

  6.   

    LB_SETVERTICALEXTENT???有这个常数吗!!!
      

  7.   

    看了半天,还是一头雾水,只基本得出一个结论,只能用API
    麻烦各位,若用API,请给出API完整申明(我只有VB5,里面的API残缺不全)
    若牵涉到如LB_SETVERTICALEXTENT之类的常数,请给出具体数值好吗?
    在此多谢了!
      

  8.   

    LB_SETVERTICALEXTENT 常数是Windows LIST类的消息常数,可在Windows消息大全中查到
      

  9.   

    Windows消息大全?那还不如说在网上(注明:地球互联网-太阳系-银河系)能查到呵呵,说笑了,别生气:)
    说实话,我只是VB爱好者(菜鸟级),只会用用几个基本控件,
    我也没有什么好的工具,MSDN(太大了,暂时装不下)
    为了能让爱机跑的顺(不好意思说配置了),只能装Win98(史前文明),
    还为了免安装程序(其实是太懒),所以一直坚持用VB5+基本控件编程。
    VB5里的API浏览器,简直就是一个玩具,啥有用的都没有
    为了查API常数值,只能从VC中(本人一点都不会VC)抠了一个Winuser.h
    大部分的都有了,但LB_SETVERTICALEXTENT 还是找不到,
    望各位举手之劳,直接给出数值,帮一下小弟,在此先谢过
      

  10.   

    LB_SETVERTICALEXTENT 
    好象没有这条消息,至少在98下没有
      

  11.   

    Option ExplicitPrivate Declare Function ShowScrollBar Lib "user32" (ByVal _
        hwnd As Long, ByVal wBar As Long, ByVal bShow As Long) _
        As Long
    Private Const SB_HORZ = 0
    Private Const SB_VERT = 1Private Sub Command1_Click()
        ShowScrollBar List1.hwnd, SB_VERT, 0
    End SubPrivate Sub Form_Load()
        Dim i As Long
        For i = 1 To 100
            List1.AddItem "line " + CStr(i)
        Next
    End Sub事实上你应该拦截控件重绘消息,进行子类处理
      

  12.   

    非常感谢rainstormmaster(rainstormmaster),困扰我大半年的问题终于有望解决了!
    但在实际使用过程中发现一个问题,虽然可以直接设置滚动条不见,
    但是一旦选定项目超出当前可视范围,滚动条又会出现。我想能否不通过拦截消息的方法,(VB的架构并不适合拦截系统消息,
    这样很容易导致系统崩溃,并且也不容易调试),让ListBox的滚动条一直消失?
    而且,不能把它Enable设置为False,因为一定要用户参与交互式操作,
    与原来的ListBox比起来,仅仅少了纵向滚动条(主要的目的是减少边框的宽度,所以无法采用遮挡的办法),至于滚动功能,由程序直接实现,如快捷键等等。