Const CB_GETITEMHEIGHT = &H154
Пошлите сообщение CB_GETITEMHEIGHT для определения высоты каждой строки или выбранного пункта в комбинированном окне (ComboBox)
В успешном случае сообщение возвращает высоту строки в пикселах
' Установим число открываемых строк в Combo1 ' Поместите на форму комбинированное окно Combo1 со стилем Simple Combo ' Form1 должна иметь свойство ScaleMode=Pixel Private Sub Form_Load() Dim i As Integer ' Заполняем комбобокс For i = 1 To 50 Combo1.AddItem Format$(i) Next i Combo1.ListIndex = 0 ' Меняем размер выпадающей части комбобокса ReSizeCombo Me, Combo1, 7 End Sub Public Sub ReSizeCombo (cbo As ComboBox, n As Integer) ' Процедура для изменения размера выпадающей части комбобокса Dim cboLeft As Long Dim cboTop As Long Dim cboWidth As Long Dim cboHeight As Long Dim h As Long 'Сохраняем размеры комбобокса cboLeft = cbo.Left cboTop = cbo.Top cboWidth = cbo.Width 'Получаем высоту одной строчки в пикселях h = SendMessage(cbo.hwnd, CB_GETITEMHEIGHT, 0, 0) 'Задаем новую высоту комбобокса 'К количеству строк надо прибавить 2 cboHeight = h * (n + 2) ' Меняем размер MoveWindow cbo.hwnd, cboLeft, cboTop, cboWidth, cboHeight, 1 End Sub