如何获得父窗口的孙子或孙子的儿子

时间:2013-05-22 12:57:05

标签: windows winapi handle childwindow

我有一个主窗口类,例如 file ,每个文件窗口都有几个子窗口,例如 pages ,每个 page < / em>有几个子窗口,例如文本框等等。
如何从文本框的句柄或文本框的子窗口之一处理文件。左。 有一个函数GetParent(),但它返回父级一级,我正在寻找一个返回顶级窗口的函数。
我编写了执行操作的代码,如下所示,但我的问题是win32中是否有系统函数?

HWND GetTopLevelWindow(HWND hChild)
{
    HWND topParent = 0;
    HWND h1 = hChild;
    HWND h2;

    while(topParent == 0)
    {
        h2 = GetParent(h1);
        if(h2 == 0)
            topParent = h1;
        else
            h1 = h2;
    }
    return topParent;
}

1 个答案:

答案 0 :(得分:2)

您需要使用GetAncestor,参数为GA_ROOT。例如

HWND topParent = GetAncestor(hChild, GA_ROOT);