MFC-GetWindowText获取指定窗口或控件的文本

 

    HWND hWnd2 = GetSafeHwnd();
    ::SetWindowText(hWnd2, _T("窗口句柄练习"));
    CString str;
    
    TCHAR ch[MAX_PATH] = { 0 };
    HWND hWnd = ::GetDesktopWindow();//获取桌面窗口的句柄
    HWND hWnd1 = ::GetWindow(hWnd, GW_CHILD); //获取与指定窗口有特定关系的窗口句柄
    //参数1:窗口句柄
    //参数2:与参数1的关系
    //       GW_CHILD(&H5):获取参数1的Tab序顶端的子窗口的句柄,否则为NULL。函数仅检查指定父窗口的子窗口,不检查继承窗口
    //       GW_HWNDNEXT(&H2):返回的句柄标识了在Z序中指定窗口下的相同类型的窗口。
    //       看:https://baike.baidu.com/item/GetWindow/6376412?fr=aladdin  
    //

    
    
    while (hWnd1 != NULL)
    {
        ::GetWindowText(hWnd1, ch, MAX_PATH);//获取指定窗口或控件的文本
    //参数1:带文本的窗口或控件的句柄
    //参数2:指向接收文本的缓冲区的指针
    //参数3:指定要保存在缓冲区内的字符的最大个数,其中包含NULL字符。如果文本超过界限,它就被截断


        str = ch;

        if (str == _T("窗口句柄练习"))   //寻找指定窗口
        {
            WriteConsole(hStdout, ch, _tcslen(ch), NULL, NULL);
                        
        }
        hWnd1 = ::GetWindow(hWnd1, GW_HWNDNEXT);
    }
        

 

 MFC

CString str;
GetDlgItem(IDC_JQM1)->GetWindowText(str);

 

 

 

 

posted @ 2023-03-07 07:26  天子骄龙  阅读(503)  评论(0)    收藏  举报