
Code
1
//通过创建线程来找子窗口
2
VOID ThreadFunc();
3
4
DWORD CurThreadID;
5
BOOL m_IsOK=TRUE;
6
7
void Func()
8

{
9
HANDLE hThread;
10
DWORD ThreadID;
11
hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadFunc,NULL,0,&ThreadID);
12
m_CurThreadID=ThreadID;
13
}
14
15
//线程函数
16
VOID ThreadFunc()
17

{
18
while(1)
19
{
20
::EnumWindows(EnumWindowsProc,0);
21
if(m_IsOK)
22
{
23
::ExitThread(m_CurThreadID);//退出线程
24
m_IsOK=FALSE;
25
break;
26
}
27
}
28
}
29
30
//EnumWindows回调函数
31
BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM IParam)
32

{
33
BOOL rtn=TRUE;
34
txt[50];
35
::GetClassName(hwnd,txt,50);
36
CString clsName=txt;
37
if(clsName=="窗口类型名")
38
{
39
HWND hWndParent=GetParent(hwnd);//找到子窗口的父窗口
40
41
TCHAR title[50];
42
::PostMessage(hwnd,WM_GETTEXT,0,(LPARAM)title);
43
CString strtitle=title;
44
45
if(hWndParent==::m_hWnd)//如果符合条件
46
{
47
::m_hwndPageSetup=hwnd;//记录页面设置句柄
48
//设置窗口置前
49
::SetActiveWindow(hwnd);//置前
50
//
这里可以做处理。
51
m_IsOK=TRUE;
52
rtn=FALSE;
53
}
54
}
55
return rtn;
56
}
posted on
2008-10-12 14:31
宁录
阅读(
709)
评论()
收藏
举报