MFC-GetNextWindow获取Z序中的下一个窗口句柄

发布时间 2023-04-27 10:57:07作者: 天子骄龙

 

    TCHAR ch[MAX_PATH] = { 0 };
    CString str;
    HWND hWnd2 = GetSafeHwnd();
    ::SetWindowText(hWnd2, _T("窗口句柄练习"));
    
    HWND hWnd = ::GetDesktopWindow();//获取桌面窗口的句柄
    HWND hWnd1 = ::GetWindow(hWnd, GW_CHILD);

    while (hWnd1) {
        ::GetWindowText(hWnd1, ch, MAX_PATH);//获取指定窗口或控件的文本
        str = ch;
        if (str == _T("窗口句柄练习"))   //寻找指定窗口
        {
            ::OutputDebugString(_T("指定窗口找到了"));
            return;

        }
        hWnd1 = ::GetNextWindow(hWnd1, GW_HWNDNEXT);//获取Z序中的下一个窗口句柄
        /*
        参数1:HWND hWnd  窗口的句柄
        参数2:UNIT wCmd  指明窗口返回的是前一窗口的句柄还是后一窗口的句柄。该参数可以是下列两个值之一:
                        GW_HWNDNEXT:返回在给定窗口的下面窗口的句柄。
                        GW_HWNDPREV:返回在给定窗口的上面窗口的句柄
        返回值:如果函数成功,返回值是前一窗口(或后一窗口)的句柄。如果前后窗口不存在,则返回值为NULL

        */

    };