如何使用其句柄更改窗口所有者

Ric*_*res 9 winapi window owner

我想将.NET表格作为另一个外部应用程序(不是.NET相关的纯Win32)的TopMost表单,因此它保持在Win32App之上,但不会运行其他应用程序.

我有Win32App的句柄(由Win32App本身提供),我尝试过Win32 SetParent()函数,通过C#中的P/Invoke,然后我的.NET表单被限制在Win32App中,这不是我想要的.

Joe*_*csy 13

我认为你正在寻找的是P/Invoke SetWindowLongPtr(win32window, GWLP_HWNDPARENT, formhandle)

谷歌搜索

  • 我通过这个回答几次认为它回答了错误的问题,直到我在msdn文档中读到以下内容:""你不能使用GWL_HWNDPARENT索引调用SetWindowLong来更改子窗口的父级.相反,请使用SetParent函数."此语句具有误导性.GWL_HWNDPARENT更改窗口的OWNER,而不是父窗口.用于此目的是安全的." (14认同)
  • 问题是我使用"更改Windows所有者"一词搜索而不是搜索"更改Windows父级".:) (2认同)