Skip to content

RegisterMessage

为选定窗口和后代范围的单个Windows消息类型订阅回调。

语法:hook.RegisterMessage ParentHWND , Mode , MessageType , Callback

hook
必需 一个IGetMessageHook实例,通常由RuntimeCreateGetMessageHook返回。
ParentHWND
必需 LongPtr。订阅锚定的窗口。
Mode
必需 EnumDescendantsModeFlags。后代范围:仅精确窗口、所有后代或仅直接子级。
MessageType
必需 Integer。要订阅的Windows WM_*消息标识符。每次调用订阅一种类型;重复调用RegisterMessage可监听多种消息。
Callback
必需 GetMessageHookHelper.GetMessageHandler。接收匹配消息的函数。传递AddressOf一个具有匹配签名的函数。

订阅会被记录,但在钩子上调用Start之前不会开始触发。添加新订阅不会干扰现有订阅。

示例

vb
Const WM_KEYDOWN = &H100
Const WM_CHAR = &H102

Sub HookKeyboard(ByVal h As IGetMessageHook)
    h.RegisterMessage Me.hWnd, AllDescendants, WM_KEYDOWN, AddressOf OnKeyDown
    h.RegisterMessage Me.hWnd, AllDescendants, WM_CHAR,    AddressOf OnChar
    h.Start
End Sub

另请参阅

twinBASIC及其LOGO版权为作者"韦恩"所有