将 IntPtr 窗口句柄转换为 IWin32Window^
如何将从表单/控件的 Handle 属性获取的句柄转换为 IWin32Window^ ?
How do I convert a handle acquired from a form/control's Handle property, to a IWin32Window^ ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
有一种更简单的方法,.NET 框架直接支持该方法,而无需创建您自己的自定义类。您可以将其与任何任意窗口句柄一起使用。
给定 IntPtr 类型的 ptrWindowHandle:
System.Windows.Forms.NativeWindow 实现 IWin32Window 接口。
There's a simpler method that is supported directly by the .NET framework without having to create your own custom class. You can use this with any arbitrary Window handle.
Given ptrWindowHandle of type IntPtr:
System.Windows.Forms.NativeWindow implements the IWin32Window interface.
Control.FromHandle
(这让你Control 对象,它实现了 IWin32Window 接口。
)
请注意,这依赖于“从表单/控件的 Handle 属性获取”的句柄。您不能将此技术用于任意 Win32 窗口句柄。
Control.FromHandle
(That gets you the Control object, which implements the IWin32Window interface.)
Eg.
Note that this relies on the handle being "acquired from a form/control's Handle property." You cannot use this technique with an arbitrary Win32 window handle.
这似乎正是您所要求的。我自己从未这样做过,但它似乎相对简单:
创建来自 Win32 句柄的 IWin32Window
祝你好运!
This appears to be exactly what you are asking for. I've never done it myself, but it appears to be relatively straightforward:
Creating a IWin32Window from a Win32 Handle
Good luck!