Wywołanie WndProc z innej klasy

0

Witam, mam pewien problem z wywołaniem funkcji systemowej przy wystąpieniu komunikatu z Windows. Utworzyłem sobie klasę KlasaBazowa, która zawiera WndProc(ByRef m As Message) i chciałbym , aby ta procedura wywoływana była w innym formularzu.

Public Class KlasaBazowa
        Inherits System.Windows.Forms.NativeWindow

   Protected Overrides Sub WndProc(ByRef m As Message)
        Select Case m.Msg
   
            Case 1

            Case 2

        End Select

                MyBase.WndProc(m)

    End Sub
End Class
#End Region

public class frm
Dim withevents cls as KlasaBazowa

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
  '' w tym miejscu chciałbym wywołać procedurę WndProc z klasy KlasaBazowa, ale nie wiem w jaki sposób. Poradzi ktoś coś?
End Sub
end class

0
kAzek napisał(a):

https://support.microsoft.com/en-us/kb/311317

Dzięki. Zrobiłem Dokładnie w ten sposób:

Public Class Form1
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim s As SubclassHWND = New SubclassHWND()
    s.AssignHandle(Me.Handle)
    ' Now s should be listening to the form's messages.
End Sub
End Class
Public Class SubclassHWND
    Inherits NativeWindow

    Protected Overloads Overrides Sub WndProc(ByRef m As Message)
....
MsgBox("Test")
'Tutaj mam zapis do bazy danych, który zostaje pominięty. W Jaki sposób go zrealizować? Z Form1 jest możliwość zapisu - sprawdziłem.

        ' forward message to base WndProc
        MyBase.WndProc(m)
    End Sub
End Class

1 użytkowników online, w tym zalogowanych: 0, gości: 1