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 используется в функциях обратного вызова в заданных оконных процедурах для обработки сообщений, в том числе и собственных
Функция возвращает различные значения в зависимости от посланного сообщения
' Смотри также пример 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)