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 }