EnumWindows的使用

BOOL EnumWindows( WNDENUMPROC lpEnumFunc, LPARAM lParam );该函数枚举所有屏幕上的顶层窗口,并将窗口句柄传送给应用程序定义的回调函数,其中lParam是传递给lpEnumFunc的参数。回调函数返回FALSE将停止枚举,否则EnumWindows函数继续到所有顶层窗口枚举完为止。例如获取所有的桌面窗口句柄,并将其值放到CListBox中:

BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)

{

	static TCHAR szBuffer[90];

	static TCHAR szTemp[80];



	static TCHAR szFormat[] = _T("%08lX: %s");

	HWND hwndListBox = (HWND)lParam;

	CListBox* plb = (CListBox*)CWnd::FromHandle(hwndListBox);



	GetWindowText(hwnd, szTemp, sizeof(szTemp));

	_stprintf_s(szBuffer, 90, szFormat, hwnd, szTemp);



	return (plb->AddString(szBuffer) >= 0) ? TRUE : FALSE;

}

//CListBox* plb = (CListBox*)GetDlgItem("列表控件");

EnumWindows(EnumWindowsProc, (LPARAM)plb->GetSafeHwnd());

你可能感兴趣的:(windows)