首页 > 其他分享 >MFC-FindWindow获取与指定窗口类名和窗口名相匹配的最顶层窗口的窗口句柄

MFC-FindWindow获取与指定窗口类名和窗口名相匹配的最顶层窗口的窗口句柄

时间:2023-03-07 14:12:11浏览次数:35  
标签:ch 窗口 hwndParent 句柄 MFC NULL 类名

 

    HWND hWnd2 = GetSafeHwnd();
    ::SetWindowText(hWnd2, _T("窗口句柄练习"));
    TCHAR ch[MAX_PATH] = { 0 };
    CString str;
    

    HWND hWnd = ::FindWindow(NULL,NULL);//获取与指定窗口类名和窗口名的最顶层窗口的窗口句柄
    //参数1:窗口类名  可以NULL
    //参数2:窗口名(窗口标题)   可以NULL

    while (hWnd != NULL)
    {
        ::GetWindowText(hWnd, ch, MAX_PATH);
        if (_tcslen(ch)>0)
        {
            str = ch;
            WriteConsole(hStdout, ch, _tcslen(ch), NULL, NULL);
            WriteConsole(hStdout, _T("\r\n"), _tcslen(_T("\r\n")), NULL, NULL);
            
        }

        hWnd = ::FindWindowEx(0, hWnd,NULL,NULL);//在窗口列表中寻找与指定条件相符的第一个子窗口句柄
        //该函数获得一个窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。
        // 这个函数查找子窗口,从排在给定的子窗口后面的下一个子窗口开始。在查找时不区分大小写
        //参数1:hwndParent:要查找的子窗口所在的父窗口的句柄(如果设置了hwndParent,则表示从这个hwndParent指向的父窗口中搜索子窗口)
        //        如果hwndParent为 0 ,则函数以桌面窗口为父窗口,查找桌面窗口的所有子窗口
        //参数2:hwndChildAfter :子窗口句柄。查找从在Z序中的下一个子窗口开始。子窗口必须为hwndParent窗口的直接子窗口而非后代窗口。
        //                        如果HwndChildAfter为NULL,查找从hwndParent的第一个子窗口开始。
        //                        如果hwndParent 和 hwndChildAfter同时为NULL,则函数查找所有的顶层窗口及消息窗口
        //参数3:窗口类名
        //参数4:窗口名(窗口标题)。如果该参数为NULL,则为所有窗口全匹配
        //返回值:Long,找到的窗口的句柄。如未找到相符窗口,则返回NULL

    }

 

 

 

 

 

 

标签:ch,窗口,hwndParent,句柄,MFC,NULL,类名
From: https://www.cnblogs.com/liming19680104/p/17187933.html

相关文章