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
}
HWND hWnd = ::FindWindow(NULL, _T("sss.txt - 记事本"));
BOOL b=::SetForegroundWindow(hWnd); //指定窗口设置到前台
TCHAR ch[] = _T("学习笔记");
::SendMessage(hWnd, WM_SETTEXT, 0, (LPARAM)ch);//设置窗口标题
HWND hWnd1 = ::FindWindowEx(hWnd, NULL, _T("Edit"), NULL);
::SetWindowText(hWnd1, _T("窗口句柄练习"));
//说明:这个语句设置不成功,原因:对于子窗口SetWindowText必须是本进程的指令
//请使用SendMessage
::SendMessage(hWnd1, WM_SETTEXT, 0, (LPARAM)_T("窗口句柄练习"));