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
}
浙公网安备 33010602011771号