小编Byr*_*ron的帖子

如何将umanaged对话框设置为WinForm表单的所有者?

我需要能够获得WinForm对话框的所有者的HWND.在非托管中,我有一个后台线程,它获取前面窗口的HWND.然后代码调用:: GetParent(frontHWND)以查看是否需要隐藏不同的非模态MFC对话框.当WinForm对话框是frontHWND时,我总是为GetParent调用返回NULL.我也试过GetOwner意识到.Net试图清理父和所有者之间的区别.查看带有Spy ++的WinForm对话框,它还说WinForm没有父级或所有者.我已经过去了

NativeWindow ^natWin = gcnew NativeWindow();
natWin->AssignHandle(IntPtr(hwndParent));
managedDlg->ShowDialog(natWin);
Run Code Online (Sandbox Code Playgroud)

上面的代码没有设置WinForm的所有者.我尝试从OnFormShown()中的WinForm代码调用Win32 SetParent,但锁定了MFC应用程序和WinForm.

有人可以解释如何让我的非托管对话框/应用程序成为托管winform的所有者/父级吗?

c# c++ interop winforms-interop

7
推荐指数
1
解决办法
3569
查看次数

标签 统计

c# ×1

c++ ×1

interop ×1

winforms-interop ×1