PDA

Click to See Complete Forum and Search --> : Windows Message


pennygab
Nov 14th, 2000, 06:57 PM
I'm trying to intercept a windows message using VB. I wnat to access the lParam and wParam of a Windows Message. how should i proceed

Vlatko
Nov 15th, 2000, 06:47 AM
You need to subclass the window

'in module
Public oldp As Long
Public Const GWL_WNDPROC = (-4)
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
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 Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If uMsg = WM_MOVE Then 'example
If wParam = SomeValue
'Do Something
End If
End If
WindowProc = CallWindowProc(oldp, hwnd, uMsg, wParam, lParam)
End Function


'in a form
Private Sub Form_Load()
oldp = SetWindowLong(Form1.hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub

Private Sub Form_Unload(Cancel As Integer)
SetWindowLong(Form1.hwnd, GWL_WNDPROC,oldp)
End Sub