当前位置:首页 科普知识 EnumWindows

EnumWindows

发布时间:2023-09-14 00:53:23

EnumWindows是一种计算机函数,原型为BOOL EnumWindows。

EnumWindows介绍

EnumWindows是一种计算机函数,原型为BOOL EnumWindows。

EnumWindows

EnumWindows函数功能

该函数枚举所有屏幕上的顶层窗口,并将窗口句柄传送给应用程序定义的回调函数。回调函数返回FALSE将停止枚举,否则EnumWindows函数继续到所有顶层窗口枚举完为止。

EnumWindows函数原型

参数:

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

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

回调函数原型

BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam);

参数:

hwnd:顶层窗口的句柄

lparam:应用程序定义的一个值(即EnumWindows中lParam)

EnumWindows返回值

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

EnumWindows其他信息

EnumWindows函数不列举子窗口。

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

EnumWindows速查

Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:

1.0以上版本;

头文件:winuser.h中声明,包含windows.h即可.

库文件:user32.lib。

EnumWindows

EnumWindows举例

代码VC++ MFC(列举所有桌面窗口,窗口标题放在全局变量string buf数组中,n是静态变量):

BOOL CALLBACK lpEnumFunc(HWND hwnd, LPARAM lParam)

{

char str;

::GetWindowText(hwnd,str,sizeof(str));

buf=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!="")

EnumWindows

m_list.AddString(buf.c_str());

}

//CDialog::onOK();

}

温馨提示:
本文【EnumWindows】由作者 爱百科 转载提供。 该文观点仅代表作者本人, 自学教育网 信息发布平台,仅提供信息存储空间服务, 若存在侵权问题,请及时联系管理员或作者进行删除。
(c)2008-2025 自学教育网 All Rights Reserved 汕头市灵创科技有限公司
粤ICP备2024240640号-6