Const CBN_DROPDOWN = 7
Уведомляющее сообщение CBN_DROPDOWN посылается при открытии раскрывающего списка комбинированного окна (ComboBox). Родительское окно комбинированного окна получает это сообщение через сообщение WM_COMMAND. Комбинированное окно должно иметь стиль CBS_DROPDOWN или CBS_DROPDOWNLIST
' Расположите код в модуле Public OldWindowProc As Long Public ComboHwnd As Long Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Public Const GWL_WNDPROC = (-4) Public Const WM_USER = &H400 Public Const WM_COMMAND = &H111 Public Const CBN_DROPDOWN = 7 ' ищем событие dropdown Public Function WindowProc(ByVal hWnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long If msg = WM_COMMAND And _ ComboHwnd = (lParam And &HFFFF) And _ (wParam \ &H10000) = CBN_DROPDOWN _ Then MsgBox "ComboBox is being dropped down" End If WindowProc = CallWindowProc( _ OldWindowProc, hWnd, msg, wParam, _ lParam) End Function ' Код для формы 'Установите на форме ComboBox, установите Style равным 0 или 2 Combo1.AddItem "Собака" Combo1.AddItem "Кошка" Combo1.AddItem "Мартышка" ComboHwnd = Combo1.hWnd OldWindowProc = SetWindowLong( _ hWnd, GWL_WNDPROC, _ AddressOf WindowProc)