WinAPI回调函数的理解与查找制定标题窗口的实现(以参数形式传入回调函数)

时间:2022-08-07 14:40:32

  我是一个比较懒的人,也因此很少有原创的blog,不过,这篇,我觉得有必要记录并发表,以供需要的人查阅。

  对于Windows的函数EnumWindows,定义原型如下:

 

1 WinAPI回调函数的理解与查找制定标题窗口的实现(以参数形式传入回调函数)BOOL EnumWindows(
2 WinAPI回调函数的理解与查找制定标题窗口的实现(以参数形式传入回调函数)
3 WinAPI回调函数的理解与查找制定标题窗口的实现(以参数形式传入回调函数)    WNDENUMPROC lpEnumFunc,  //  pointer to callback function
4 WinAPI回调函数的理解与查找制定标题窗口的实现(以参数形式传入回调函数)     LPARAM lParam   //  application-defined value
5 WinAPI回调函数的理解与查找制定标题窗口的实现(以参数形式传入回调函数)    );

 

  它有两个参数,第一个是回调函数的地址,第二个则是参数地址。对于这个函数的理解,我觉得就像是一个循环。

我对我的理解,用Delphi代码表示如下,希望各位可以指出不是之处:

 

WinAPI回调函数的理解与查找制定标题窗口的实现(以参数形式传入回调函数)WinAPI回调函数的理解与查找制定标题窗口的实现(以参数形式传入回调函数)Code

  由此可见,EnumWindows和EnumWindowsProc其实是可以传参数的。很遗憾,我在网上查找的相关文章中却

没有说明,EnumWindows的第二个参数都是传0进去,其实它可以传回调函数参数的地址!

  以下是回调函数的实现代码:

 

WinAPI回调函数的理解与查找制定标题窗口的实现(以参数形式传入回调函数)WinAPI回调函数的理解与查找制定标题窗口的实现(以参数形式传入回调函数)Code

  代码中的ConsignorHanle是找到的窗体句柄,是一个全局变量。函数体中的内容可以根据需要修改。

  现在关键的问题是,有没有可能实现参数的传出?如果哪位知道怎么实现将找到窗体的句柄传出,请留言,或联系

我:yejin_57@163.com