2

我有一个主窗口类,例如file,每个文件窗口都有几个子窗口,例如pages,每个页面都有几个子窗口,例如text boxes等。
我怎样才能得到句柄文件,来自文本框的句柄,或文本框的子窗口之一。
有一个函数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;
}
4

1 回答 1

2

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

HWND topParent = GetAncestor(hChild, GA_ROOT);
于 2013-05-23T11:55:47.017 回答