在C#中使用API回调函数的方法
2009-04-19 17:36
323 查看
在C#中使用API回调函数的方法
就以EnumChildWindows和EnumChildProc为例子:首先要声明EnumChildProc 为一个回调函数
public delegate bool EnumChildProc(int hwnd, IntPtr lParam);
delegate为C#中的回调类型,相当于C++里面的CALLBACK,这样就可以在下面声明EnumChildWindows的时候在参数中使用EnumChildProc来作为一个类型。
声明调用user32.dll中的EnumChildWindows,如下:
[DllImport("user32.dll", EntryPoint = "EnumChildWindows")]
public static extern bool EnumChildWindows(int hwndParent, EnumChildProc EnumFunc, IntPtr lParam);
定义一个和EnumChildProc返回值和参数一样的函数:
bool EnumCP(int hwnd,IntPtr lParam)
{
System.Text.StringBuilder sbClassName = new StringBuilder(255);
GetClassName(hwnd, sbClassName, 255);
if ("Static" == sbClassName.ToString())
{
return false;
}
return true;
}
这时就可以使用EnumChildWindows(hwnd, EnumCP, IntPtr.Zero); 当EnumCP返回true的时候,EnumChildWindow继续进行枚举窗口。当EnumCP返回false的时候,EnumChildWindow停止进行枚举窗口。
上面代码实行的是当找到一个Static类的窗口后,停止枚举。
相关文章推荐
- 在C#中使用API回调函数的方法
- [转]在C#中使用API回调函数的方法
- [转]在C#中使用API回调函数的方法
- C# 小数点后保留两位小数,四舍五入的函数及使用方法
- C# 使用系统方法发送异步邮件
- C#使用foreach语句遍历集合类型的方法
- C#中关键字using的三种使用方法
- C#中查看当前Request是否使用代理的一种方法
- 【IEnumerable】扩展方法的使用 C#
- C#使用foreach语句遍历队列(Queue)的方法
- C# 使用 X.509 v.3 证书的方法。
- c# FileSystemWatcher控件的使用方法
- c# BackgroundWorker控件使用方法
- [C#/ASP.NET]List<>中Sort()、Find()、FindAll()、Exist()的使用方法
- c# ArrayList 的 Sort()方法的使用
- C# 使用资源文件 Resource.resx 的方法
- C# 使用反射来实现对象的深度复制方法
- 在C#程序中使用ocx的方法
- [转]使用C#打开新窗口关闭旧窗口的方法;winform中防止重复打开多个相同子窗体
- C# DataTable的詳細使用方法