
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):如果指定窗口是父窗口,则获得的是在Z序顶端的子窗口的句柄,否则为NULL。函数仅检查指定父窗口的子窗口,不检查继承窗口
// GW_HWNDNEXT(&H2):获取与hWnd同级别,Z序在hWnd的下一个窗口句柄
// GW_HWNDFIRST = 0; 同级别第一个
// GW_HWNDLAST = 1; 同级别最后一个
// GW_HWNDPREV = 3; 同级别上一个
// GW_OWNER = 4; 属主窗口(如果存在)
//
//
while (hWnd1 != NULL)
{
::GetWindowText(hWnd1, ch, MAX_PATH);//获取指定窗口或控件的文本
//参数1:带文本的窗口或控件的句柄
//参数2:指向接收文本的缓冲区的指针
//参数3:指定要保存在缓冲区内的字符的最大个数,其中包含NULL字符。如果文本超过界限,它就被截断
str = ch;
if (str == _T("窗口句柄练习")) //寻找指定窗口
{
::OutputDebugString(_T("指定窗口找到了"));
return;
}
hWnd1 = ::GetWindow(hWnd1, GW_HWNDNEXT);
}
