Public 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
Public 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_MOUSEWHEEL = &H20A
Dim PrevProc As Long
Public Sub HookForm(hwnd As Long)
PrevProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Public Sub UnHookForm(hwnd As Long)
SetWindowLong hwnd, GWL_WNDPROC, PrevProc
End Sub
Public Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Select Case uMsg
Case WM_MOUSEWHEEL
'тра ля ля...
End Select
WindowProc = CallWindowProc( _
PrevProc, hwnd, uMsg, wParam, lParam)
End Function
Т.е. unhook делать. Так я ж его на событие unload для формы ставлю... и судя по дебагеру оно обрабатывается, но после этого IDE все равно вылетает.Восстанавливать надо WindowProc перед тем, как закрывать или отлаживать проект.
Gigahard писал(а):Т.е. это не я не прав, а отладчик IDE глючный?
Ну хочешь отладки, так понатыкай везде где надо
Debug.?
А вообще если по существу вопроса сказать нечего, то нефиг рассуждать о прямоте чьих то рук ...А вообще, если у тебя IDE вылетает после того, как ты закрыл форму стандартным способом, то это говорит о "прямоте" твоих рук
alibek писал(а):Внешняя COM-библиотека для сабклассинга?
Private Declare Sub ExitProcess lib "kernel32.dll" (ByVal uExitCode as Long)
ExitProcess 0
Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 135