代码之家  ›  专栏  ›  技术社区  ›  Nathan W

查找哪个MDI子级刚获得焦点win32 api

  •  1
  • Nathan W  · 技术社区  · 15 年前

    我有一个拥有MDI主机的程序,我希望能够获得其中哪些孩子刚获得焦点,基本上我希望为此应用程序生成一个窗口焦点更改事件。

    应用程序是第三方,我没有源代码,我有主程序和MDI主机部分的窗口句柄。

    我知道我必须使用win32 api,只是不确定是哪个。

    我正在用C语言写申请书#

    谢谢。

    1 回复  |  直到 15 年前
        1
  •  1
  •   serge_gubenko    15 年前

    我猜你要找的是截取 WM_SETFOCUS WM_KILLFOCUS 信息

    真正的问题是你打算怎么做。我想最简单的方法是安装一个 hook 它是一个子例程,用于监视系统中的消息流量,并在某些类型的消息到达目标窗口过程之前处理它们。你是通过使用 SetWindowsHookEx winapi函数的钩子类型为wh ou callwndproc或wh ou callwndprocret。在codeproject上发布了一些示例;在msdn上也发布了一个示例: How to set a Windows hook in Visual C# .NET

    您的文章中真正不清楚的是您的代码在哪里运行:与MDI窗口在同一进程中运行,还是它是一个单独的应用程序\服务?如果是这样,您还需要将代码注入远程进程。请查看此链接以获取有关如何执行此操作的详细信息: Three Ways to Inject Your Code into Another Process

    希望这有帮助,问候