什么是EnumWindows

核心提示EnumWindows是一种计算机函数,原型为BOOL EnumWindows。外文名EnumWindows类别计算机函数原型BOOL EnumWindows功能枚举EnumWindows函数功能该函数枚举所有屏幕上的顶层窗口,并将窗口句柄

最佳答案:

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

详情介绍

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

外文名
EnumWindows
类别
计算机函数
原型
BOOL 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举例

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

m_list.AddString(buf.c_str());

}

//CDialog::onOK();

}

 
友情链接
鄂ICP备19019357号-22