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);
}