listbox每一行的高度是固定死的么?可以调整么?如何设置呢?
baidu搜不到,故此麻烦各位高人!Thx

解决方案 »

  1.   

    Option ExplicitPrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Const LB_GETITEMHEIGHT = &H1A1
    Private Const LB_SETITEMHEIGHT = &H1A0
    Dim lstH As LongPrivate Sub Command1_Click()
        lstH = SendMessage(List1.hwnd, LB_GETITEMHEIGHT, 0, ByVal 0&)
        MsgBox "列表框条目原来的高度是:" & lstH, , ""
        Command2.Enabled = True
        Command3.Enabled = True
        Command4.Enabled = True
    End SubPrivate Sub Command2_Click()
        Dim temp As Single
        Dim lstHtemp As Long
        temp = InputBox("请输入列表框条目的新的高度(原来高度的倍数)")
        lstHtemp = CLng(temp * lstH)
        SendMessage List1.hwnd, LB_SETITEMHEIGHT, 0, ByVal lstHtemp
        List1.Refresh
        MsgBox "列表框条目的新高度势:" & lstHtemp, , ""
    End SubPrivate Sub Command3_Click()
        SendMessage List1.hwnd, LB_SETITEMHEIGHT, 0, ByVal lstH
        List1.Refresh
    End SubPrivate Sub Command4_Click()
        Unload Me
    End SubPrivate Sub Form_Load()
        List1.AddItem "AAAAAAAAAA"
        List1.AddItem "BBBBBBBBBBBBBB"
        List1.AddItem "CCCCCCCCCCCCCCCCCCCC"
        List1.AddItem "DDDDDDDDDDDDD"
        
        Command1.Caption = "显示原高度"
        Command2.Caption = "设置新高度"
        Command3.Caption = "恢复原高度"
        Command4.Caption = "退 出"
        Form1.Caption = "用列表框消息设置条目高度"
        
        Command2.Enabled = False
        Command3.Enabled = False
        Command4.Enabled = False
    End Sub
      

  2.   

    谢谢 wzzwwz(棒子面窝头) ,问题解决!
    csdn真是卧虎藏龙
    看来api还是要好好学学
    可以告诉我这些资料你是从哪里得来的吗?
      

  3.   

    我看的一本书,名字:
    Visual Basic 6.0 Win32 API 程序设计
    刘炳文 李凤华 编著
    清华大学出版社 出版