【问题标题】:HWnd Message Hook in WinForms?WinForms中的HWnd消息挂钩?
【发布时间】:2011-08-29 17:31:50
【问题描述】:

WinForms 相当于下面一行 WPF 代码?

HwndSource.FromHwnd(_windowHandle).AddHook(HwndSourceHookHandler);

【问题讨论】:

    标签: c# wpf winforms


    【解决方案1】:

    在 WinForms 中,您通常会在相关控件/表单中使用 override WndProc。由于每个控件实际上都是HWND,因此您不需要HwndSource 挂钩样式。


    如果您想在 C# 中设置 Hook,可以按照 How to set a Windows hook in Visual C# .NET 中的指南进行操作。

    【讨论】:

    • 谢谢 - 感谢您的意见。我希望有一个类,与相应的表单分开,处理消息的注册等,构造函数将在其中接收窗口/表单的实例,此时我需要知道如何使用窗口/表单的处理,注册消息。如果我最初的帖子不清楚,请道歉。
    • @Chris:你是否知道如何设置 Windows Hook,即:support.microsoft.com/kb/318804
    • 另见:msdn.microsoft.com/en-us/library/ms632589(VS.85).aspx 了解 Hooks 的完整详情
    • Reed - 是的 - 特别想知道如何设置 Windows Hook。
    • @Chris:好的-第一个链接(编辑我的答案以包含它)介绍了如何做到这一点;)
    【解决方案2】:

    在您自己的进程中,您可以使用Application.AddMessageFilter method 来侦听特定事件,然后再将它们分派到任何地方。这在进程之间不起作用。

    我在搜索my questions 之一关于处理父控件和子控件之间的鼠标事件的答案时发现了这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-22
      • 2015-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多