代码之家  ›  专栏  ›  技术社区  ›  shadeMe

将intptr窗口句柄转换为iwin32window^

  •  17
  • shadeMe  · 技术社区  · 14 年前

    如何将从窗体/控件的句柄属性获取的句柄转换为iwin32window^?

    3 回复  |  直到 9 年前
        1
  •  23
  •   Ben Voigt    9 年前

    Control.FromHandle

    (这就得到了控制对象,它实现了iwin32window接口。)

    如。

    IntPtr myWindowHandle = IntPtr(someVal);
    IWin32Window^ w = Control::FromHandle(myWindowHandle);
    

    请注意,这依赖于“从窗体/控件的句柄属性获取”的句柄。不能将此技术用于任意的win32窗口句柄。

        2
  •  23
  •   Jim Gomes GazTheDestroyer    9 年前

    有一个更简单的方法直接由.NET框架支持,而不必创建自己的自定义类。你可以用这个 任何 任意窗口句柄。

    鉴于 ptrwindowhandle公司 类型 国际乒乓球联合会 :

    using System.Windows.Forms;
    
    NativeWindow nativeWindow = new NativeWindow();
    nativeWindow.AssignHandle(ptrWindowHandle);
    

    system.windows.forms.nativewindow系统 实现 IWI32窗口 接口。

        3
  •  7
  •   Morinar    14 年前

    这似乎正是你所要求的。我从未亲自做过,但似乎相对简单:

    Creating a IWin32Window from a Win32 Handle

    祝你好运!