我希望使用C#
窗口创建设置父级到我定义的句柄,
这是另一个进程窗口句柄。
任何人都知道怎么做?
问候,
答案 0 :(得分:7)
如果我正确地理解了你的问题,你应该能够通过这样的方式实现你想要的目标:
class Win32Window : IWin32Window
{
IntPtr handle;
public Win32Window(IntPtr handle) { this.handle = handle; }
public IntPtr Handle
{
get { return this.handle; }
}
}
static void Main()
{
IntPtr targetParent = // Get handle to the parent window
new MainForm().ShowDialog(new Win32Window(targetParent));
}
这会将MainForm
转换为指定窗口的子窗口,使其始终显示在其上方。我在示例中使用ShowDialog
,但这也适用于Show
。这是Windows窗体特有的。
在WPF中,您可以尝试以下操作:
var helper = new WindowInteropHelper(/* your Window instance */);
helper.Owner = // Set with handle for the parent
我在显示WPF窗口后很快就尝试了这个,它似乎按预期工作,但WPF知识不是很好。
答案 1 :(得分:3)