我是一个比较懒的人,也因此很少有原创的blog,不过,这篇,我觉得有必要记录并发表,以供需要的人查阅。
对于Windows的函数EnumWindows,定义原型如下:
1
BOOL EnumWindows(
2
3 WNDENUMPROC lpEnumFunc, // pointer to callback function
4 LPARAM lParam // application-defined value
5 );
2
3 WNDENUMPROC lpEnumFunc, // pointer to callback function
4 LPARAM lParam // application-defined value
5 );
它有两个参数,第一个是回调函数的地址,第二个则是参数地址。对于这个函数的理解,我觉得就像是一个循环。
我对我的理解,用Delphi代码表示如下,希望各位可以指出不是之处:
Code
由此可见,EnumWindows和EnumWindowsProc其实是可以传参数的。很遗憾,我在网上查找的相关文章中却
没有说明,EnumWindows的第二个参数都是传0进去,其实它可以传回调函数参数的地址!
以下是回调函数的实现代码:
Code
代码中的ConsignorHanle是找到的窗体句柄,是一个全局变量。函数体中的内容可以根据需要修改。
现在关键的问题是,有没有可能实现参数的传出?如果哪位知道怎么实现将找到窗体的句柄传出,请留言,或联系