Функция CallWindowProc

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

CallWindowProc используется в функциях обратного вызова в заданных оконных процедурах для обработки сообщений, в том числе и собственных

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

Функция возвращает различные значения в зависимости от посланного сообщения

Параметры

lpPrevWndFunc
Указатель на оконную процедуру
hWnd
Описатель окна для получения сообщения
Msg
Сообщение
wParam
Дополнительная информация к сообщению
lParam
Дополнительная информация к сообщению

Пример

' Смотри также пример apiform.zip

' Меняем фон формы при получении
' или потере фокуса окна Form1
' Это возможно обработкой оконной процедуры
' WM_ACTIVATE

' Расположите код в модуле
Const WM_ACTIVATE = &H6  ' идентификатор сообщения

Public pOldProc As Long  ' указатель на предыдущую функцию

' Определим новую оконную процедуру
Public Function WindowProc(ByVal hwnd As Long, _
ByVal msg As Long, ByVal wParam As Long, _
ByVal lParam As Long) As Long

' Если пришло сообщение WM_ACTIVATE,
' то меняем цвет фона формы
  If uMsg = WM_ACTIVATE Then
    If (wParam = WA_ACTIVE Or wParam = WA_CLICKACTIVE) Then
    Form1.BackColor = vbRed
        Else
           Form1.BackColor = vbGreen
     End If
  End If

WindowProc = CallWindowProc( _
        OldWindowProc, hwnd, msg, wParam, _
        lParam)
End Function

' Расположите код в любом месте
OldWindowProc = SetWindowLong( _
        hwnd, GWL_WNDPROC, _
        AddressOf WindowProc)

Смотри также

DefWindowProc

Категория

Процедуры

Реклама