Запись в структуру открытой части ComboBox - VB

Узнай цену своей работы

Формулировка задачи:

Доброго всем времени суток! Пожалуйста помогите разобраться. Нужно получить координаты раскрытого ComboBox.Мои попытки ни к чему не привели.
Пожалуйста подскажите что я не правильно делаю.С Ip функциями только начинаю разбираться так что знаний не хватает.

Решение задачи: «Запись в структуру открытой части ComboBox»

textual
Листинг программы
Option Explicit
 
Private Type RECT
    left As Long
    top As Long
    right As Long
    bottom As Long
End Type
 
Private Type COMBOBOXINFO
    cbSize As Long
    rcItem As RECT
    rcButton As RECT
    stateButton As Long
    hWndCombo As Long
    hwndEdit As Long
    hWndList As Long
End Type
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Declare Function GetComboBoxInfo Lib "user32.dll" (ByVal hWndCombo As Long, ByRef CBInfo As COMBOBOXINFO) As Long
 
Private Sub Form_Load()
    
    Dim i&, hWndList, hWndCombo, rList As RECT, rCombo As RECT
    Dim cbi As COMBOBOXINFO
    cbi.cbSize = Len(cbi)
    Call GetComboBoxInfo(Me.Combo1.hwnd, cbi)
    hWndList = cbi.hWndList
    hWndCombo = Combo1.hwnd
    
    For i = 0 To 100
        Me.Combo1.AddItem i
    Next i
    
    Call GetComboBoxInfo(Me.Combo1.hwnd, cbi)
    
    With rCombo 'Размеры Combo1
        GetWindowRect hWndCombo, rCombo
        Debug.Print .left, .top, .right, .bottom
    End With
    
    With rList 'Размеры списка относительно Combo1
        GetWindowRect hWndList, rList
        Debug.Print .left, .top, .right, .bottom
    End With
 
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.267 из 5
Похожие ответы