我想将.NET表格作为另一个外部应用程序(不是.NET相关的纯Win32)的TopMost表单,因此它保持在Win32App之上,但不会运行其他应用程序。
我有Win32App的句柄(由Win32App本身提供),我通过Win32 SetParent() function尝试了P/Invoke in C#,但后来我的.NET表单被限制在Win32App中,而不是我想要的是什么。
答案 0 :(得分:13)
我认为你正在寻找P / Invoke SetWindowLongPtr(win32window, GWLP_HWNDPARENT, formhandle)
答案 1 :(得分:2)
是的! 我已经有一个P / Invoke导入SetWindowLongPtr(这是x64安全)。并使用Reflector我搜索了Form.Owner属性(即get_Owner(Form值)方法) 并设法用
更改所有者SetWindowLongPtr(childHdl, -8, OwnerHdl)
在我发布解决方案之前,我正在查看-8(0xFFFFFFFFFFFFFFF8)的含义,但Joel已经指出了它。
谢谢!
答案 2 :(得分:-1)