俺想改变ComboBox的高度!!!
请问应该怎么实现???
thanks

解决方案 »

  1.   

    Private Const CB_SETITEMHEIGHT = &H153Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Sub Command1_Click()
       Call SendMessage(Combo1.hwnd, CB_SETITEMHEIGHT, -1&, ByVal 13)
       Debug.Print Combo1.Height
    End Sub
      

  2.   

    SendMessage Comb.hWnd, &H153, -1&, ByVal 13->高度值可以的,我试过
      

  3.   

    不要问了,Combo不能改变高度
      

  4.   

    再问一下怎么改变combo中的item之间的距离呢???俺想让它们的间隔大一写thanks
      

  5.   

    Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
    Const CB_SETDROPPEDWIDTH = &H160'  设置ComboBox下拉选单长度函数
    Public Sub SetComboHeight(ComboBox_Obj As ComboBox, NewHeight As Long)
        Dim OldScaleMode As Integer
        If TypeOf ComboBox_Obj.Parent Is Frame Then Exit Sub
        ' 改变ComboBox控件的容器的坐标度量单位为象素
        OldScaleMode = ComboBox_Obj.Parent.ScaleMode
        ComboBox_Obj.Parent.ScaleMode = vbPixels
        ' 重新定义ComboBox的尺寸
        MoveWindow ComboBox_Obj.hwnd, ComboBox_Obj.Left, _
        ComboBox_Obj.Top, ComboBox_Obj.Width, NewHeight, 1
        ' 恢复ComboBox控件的容器的坐标度量单位
        ComboBox_Obj.Parent.ScaleMode = OldScaleMode
    End Sub'  设置ComboBox下拉选单宽度函数
    Public Sub SetComboWidth(ComboBox_Obj As ComboBox, NewWidth As Long)
        '  NewWidth 是宽度,单位是 pixels
        SendMessage ComboBox_Obj.hwnd, CB_SETDROPPEDWIDTH, NewWidth, 0
    End SubPrivate Sub Form_Load()
        Dim i As Integer
        '  向ComboBox添加项
        For i = 0 To 40
            Demo_Combo.AddItem ("This is the long Item " + CStr(i))
        Next i
    End Sub'  改变ComboBox下拉选单长度和宽度
    Private Sub Change_But_Click()
        Call SetComboHeight(Demo_Combo, 300)
        Call SetComboWidth(Demo_Combo, 200)
    End Sub