词条 | EnumWindows |
释义 | 函数功能该函数枚举所有屏幕上的顶层窗口,并将窗口句柄传送给应用程序定义的回调函数。回调函数返回FALSE将停止枚举,否则EnumWindows函数继续到所有顶层窗口枚举完为止。 函数原型BOOL EnumWindows(WNDENUMPROC lpEnumFunc,LPARAM lParam); 参数: lpEnumFunc:指向一个应用程序定义的回调函数指针,请参看EnumWindowsProc。 lPararm:指定一个传递给回调函数的应用程序定义值。 回调函数原型 BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam); 参数: hwnd:顶层窗口的句柄 lparam:应用程序定义的一个值(即EnumWindows中lParam) 返回值如果函数成功,返回值为非零;如果函数失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。 备注EnumWindows函数不列举子窗口。 在循环体中调用这个函数比调用GetWindow函数更可靠。调用GetWindow函数中执行这个任务的应用程序可能会陷入死循环或指向一个已被销毁的窗口的句柄。 速查Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本; 头文件:winuser.h中声明,包含windows.h即可. 库文件:user32.lib。 举例代码VC++ MFC(列举所有桌面窗口,窗口标题放在全局变量string buf[]数组中,n是静态变量): BOOL CALLBACK lpEnumFunc(HWND hwnd, LPARAM lParam) { char str[100]; ::GetWindowText(hwnd,str,sizeof(str)); buf[n++]=str; return 1; } void CEnumWindowsDlg::OnOK() { // TODO: Add extra validation here n=0; EnumWindows(lpEnumFunc,NULL); int i; for(i=0;i<n;i++) { if(buf!="") m_list.AddString(buf.c_str()); } //CDialog::OnOK(); } |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。