代码之家  ›  专栏  ›  技术社区  ›  Gishu

与MS Spy++显示的“父”和“所有者”窗口值相对应的win32api是什么?

  •  2
  • Gishu  · 技术社区  · 15 年前

    我想通过代码获得相同的值。不过,我想获取层次结构中最顶层或根窗口

    我好像有个家长

    HWND rootWinHandle = GetAncestor(activatedWinHandle, GA_PARENT);
    

    但是我找不到正确的所有者窗口。尝试

    HWND rootOwnerWinHandle = GetAncestor(activatedWinHandle, GA_ROOTOWNER);
    

    对于特定的无模式对话框,spy++返回主exe窗口,而上面的行返回输入,即activatedwinhandle。我是否看错了API?
    如果可能的话,我想在没有MFC的情况下获得这个…因为在我的项目中没有别的需要。

    4 回复  |  直到 13 年前
        1
  •  1
  •   sean e    15 年前

    查看gw_所有者标志 GetWindow .

    这个 GetParent 文件说明:

    如果窗口是子窗口,则返回值是父窗口的句柄。如果窗口是顶级窗口,则返回值是所有者窗口的句柄。

        2
  •  1
  •   Anthony Johnson    15 年前

    尝试getParent()。我相信这将返回一个没有WS-Child样式的窗口的所有者窗口,以及一个带有WS-Child的窗口的父窗口。

        3
  •  1
  •   Ian Boyd    15 年前

    我只能从Raymond Chen那里补充一点见解:

    记住主人和父母是两个 不同的东西。

    模式对话框禁用其所有者。 所有顶级窗口都有桌面 作为他们的父母。

    来自: What's so special about the desktop window?

        4
  •  -1
  •   kero    13 年前