Сообщение CBN_DROPDOWN

Const CBN_DROPDOWN = 7

Уведомляющее сообщение CBN_DROPDOWN посылается при открытии раскрывающего списка комбинированного окна (ComboBox). Родительское окно комбинированного окна получает это сообщение через сообщение WM_COMMAND. Комбинированное окно должно иметь стиль CBS_DROPDOWN или CBS_DROPDOWNLIST

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

Параметры

wParam
Младшее слово определяет идентификатор элемента. Старшее слово определяет уведомляющее сообщение
lParam
Дескриптор комбинированного окна

Пример

' Расположите код в модуле
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)

Смотри также

CBN_CLOSEUP

Категория

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