EnumWindows

王朝百科·作者佚名  2010-02-20  
宽屏版  字体: |||超大  

函数功能:该函数枚举所有屏幕上的顶层窗口,办法是先将句柄传给每一个窗口,然后再传送给应用程序定义的回调函数。EnumThreadWindows函数继续到所有顶层窗口枚举完为止或回调函数返回FALSE为止函数原型:

BOOL EnumWindows(WNDENUMPROC lpEnumFunc,LPARAM lParam);

参数:

lpEnumFunc:指向一个应用程序定义的回调函数指针,请参看EnumWindowsProc。

lPararm:指定一个传递给回调函数的应用程序定义值。

返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。

备注:EnumWindows函数不列举子窗口。

在循环体中调用这个函数比调用GetWindow函数更可靠。调用GetWindow函数中执行这个任务的应用程序可能会陷入死循环或指向一个已被销毁的窗口的句柄。

速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本;头文件:winuser.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();

}

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有