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

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

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

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

    我似乎已经找到了根家长

    HWND rootWinHandle = GetAncestor(activatedWinHandle, GA_PARENT);
    

    但是,我无法正确获取所有者窗口。尝试

    HWND rootOwnerWinHandle = GetAncestor(activatedWinHandle, GA_ROOTOWNER);
    

    对于特定的无模式对话框,Spy++返回Main Exe窗口,而上一行返回输入,即activatedWinHandle。我看错api了吗?
    如果可能的话,我想在没有MFC的情况下获得这个。..因为我的项目中没有其他东西需要它。

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

    请参阅GW_OWNER标志 GetWindow .

    GetParent 文件规定:

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

        2
  •  1
  •   Anthony Johnson    17 年前

    尝试GetCarent()。我相信这将返回没有WS_CHILD样式的窗口的所有者窗口,以及具有WS_CHILD的窗口的父窗口。

        3
  •  1
  •   Ian Boyd    17 年前

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

    不同的东西。

    模态对话框禁用其所有者。 作为他们的父母。

    发件人: What's so special about the desktop window?