EnumChildWindows
是 C# 中的一个方法,它属于 System.Windows.Forms
命名空间。这个方法的主要作用是枚举一个窗口的所有子窗口。这个方法需要一个回调函数作为参数,该回调函数将被应用于每个子窗口。当遍历完所有子窗口后,EnumChildWindows
方法返回 true
。
以下是一个简单的示例,展示了如何使用 EnumChildWindows
方法:
using System;
using System.Windows.Forms;
namespace EnumChildWindowsExample
{
public class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void InitializeComponent()
{
this.SuspendLayout();
//
// MainForm
//
this.ClientSize = new System.Drawing.Size(300, 200);
this.Name = "MainForm";
this.Load += new System.EventHandler(this.MainForm_Load);
this.ResumeLayout(false);
}
private void MainForm_Load(object sender, EventArgs e)
{
EnumChildWindows(this, (hWnd, lParam) =>
{
MessageBox.Show($"子窗口句柄: {hWnd}, 标题: {GetWindowText(hWnd)}");
return true;
});
}
[DllImport("user32.dll")]
private static extern int GetWindowText(IntPtr hWnd);
[DllImport("user32.dll")]
private static extern bool EnumChildWindows(IntPtr hWndParent, EnumWindowProc lpEnumFunc);
private delegate bool EnumWindowProc(IntPtr hWnd, IntPtr lParam);
}
}
在这个示例中,当 MainForm
加载时,EnumChildWindows
方法会被调用,枚举所有子窗口并显示它们的句柄和标题。