Сообщение CB_GETITEMHEIGHT

Const CB_GETITEMHEIGHT = &H154

Пошлите сообщение CB_GETITEMHEIGHT для определения высоты каждой строки или выбранного пункта в комбинированном окне (ComboBox)

Возвращаемое значение

В успешном случае сообщение возвращает высоту строки в пикселах

Параметры

wParam
Задают компонент комбинированного окна для получения высоты. Если равен –1, то получаем высоту выбранного поля. Если равен 0, то получаем высоту пунктов списка. В этом случае параметр wParam является индексом строки (отсчет от 0)
lParam
Не используется - установите равным 0

Пример

' Установим число открываемых строк в 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

Смотри также

CB_SETITEMHEIGHT

Категория

Комбинированное окно