函数原型:
BOOL EnumWindows(WNDENUMPROC lpEnumFunc,LPARAM lParam);
函数作用:
该函数枚举所有屏幕上的顶层窗口,并将窗口句柄传送给应用程序定义的回调函数。回调函数返回FALSE将停止枚举,否则EnumWindows函数继续到所有顶层窗口枚举完为止。
示例:
typedef struct{
CString strName;
HWND hwnd;
}_WND_INFO;
BOOL MyFindWindow(HWND hwnd,LPARAM lParam)
{
_WND_INFO* p = (_WND_INFO*)lParam;
CString strName;
CWnd::FromHandle(hwnd)->GetWindowText(strName);
if(strName.CompareNoCase(p->strName) == 0)
{
p->hwnd = hwnd;
return FALSE;
}
return TRUE;
}
void CMfcCtrlDlg::OnBnClickedStart()
{
// TODO: 在此添加控件通知处理程序代码
_WND_INFO wndInfo;
wndInfo.strName = _T("Window Caption");
wndInfo.hwnd = NULL;
EnumWindows((WNDENUMPROC)MyFindWindow, (LPARAM)&wndInfo);
if (NULL == wndInfo.hwnd)
{
AfxMessageBox(_T("没有找到Window Caption!"));
}
else
{
AfxMessageBox(_T("找到Window Caption!"));
}
}