Ich habe eine "Komponente" erstellt, welche aus einem Klassenmodul "MsgHook.CLS" und einem BAS-Modul "MsgHookProc.BAS" besteht. Da die Quelltexte doch etwas länglich geworden sind (u.a. aufgrund von Performance-Optimierungen wie z.B. Hashing), biete ich hier ein Beispiel-Projekt als
ZIP-Archiv (4 KB) an, welche die o.g. beiden Module zusammen mit dem folgenden Beispiel enthält.
Das Beispiel demonstriert, wie man mit Hilfe von SubClassing das unerwünschte Standard-Kontextmenü z.B. einer TextBox unterdrückt:
Private WithEvents Msg As MsgHook
Private Sub Form_Load()
Set Msg = New MsgHook
Msg.Hook txtTest.hWnd, WM_CONTEXTMENU
End Sub
Private Sub Msg_Before(uMsg As Long, wParam As Long, _
lParam As Long, retVal As Long)
uMsg = 0
End Sub
Einfacher gehts kaum noch, oder? Ansonsten wünsche ich viel Spaß beim SubClassing!