溫馨提示×

C#中EnumChildWindows的返回值處理

c#
小樊
105
2024-08-08 02:45:45
欄目: 編程語言

在C#中,可以通過調用EnumChildWindows函數來枚舉所有子窗口,并在回調函數中處理返回的窗口句柄。以下是一個示例代碼,演示了如何使用EnumChildWindows函數和回調函數處理返回的窗口句柄。

using System;
using System.Runtime.InteropServices;

class Program
{
    [DllImport("user32.dll")]
    public static extern bool EnumChildWindows(IntPtr hwndParent, EnumWindowsProc lpEnumFunc, IntPtr lParam);

    public delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam);

    static void Main()
    {
        IntPtr mainWindowHandle = IntPtr.Zero; // 父窗口句柄

        EnumChildWindows(mainWindowHandle, EnumWindowCallback, IntPtr.Zero);
    }

    public static bool EnumWindowCallback(IntPtr hWnd, IntPtr lParam)
    {
        // 處理返回的窗口句柄
        Console.WriteLine("Child window handle: " + hWnd.ToString());

        // 返回true以繼續枚舉下一個子窗口
        return true;
    }
}

在上面的示例中,我們定義了一個名為EnumWindowsProc的委托類型,用于作為EnumChildWindows函數的回調函數。在Main方法中,我們調用EnumChildWindows函數來枚舉所有子窗口,并傳入一個回調函數EnumWindowCallback來處理返回的窗口句柄。在EnumWindowCallback方法中,我們簡單地打印出返回的窗口句柄,并返回true以繼續枚舉下一個子窗口。

請注意,需要引入System.Runtime.InteropServices命名空間來使用DllImport屬性。在實際應用中,您可能需要根據具體需求來處理返回的窗口句柄,比如對子窗口進行操作或獲取子窗口的屬性等。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女