Wpf WinAPI将系统菜单复制到新窗口

Wpf WinAPI将系统菜单复制到新窗口,wpf,winapi,hwndhost,systemmenu,Wpf,Winapi,Hwndhost,Systemmenu,我正在使用HwndHost将另一个应用程序的窗口停靠在我的WPF窗口内。为此,我必须设置我停靠的窗口的WS_CHILD style属性,并且我会丢失该窗口的系统菜单,这是不可接受的。使用HwndHost无法解决此问题,因为如果未设置该属性,它将抛出异常 我的问题是, 由于我的应用程序不使用系统菜单,有没有办法直接将停靠应用程序的系统菜单复制到我的应用程序窗口?我所知道的WinAPI菜单函数都需要我从头开始构建菜单,我不知道如何将这些菜单连接到托管应用程序中 我不确定这是否重要,但这两个窗口在同一

我正在使用HwndHost将另一个应用程序的窗口停靠在我的WPF窗口内。为此,我必须设置我停靠的窗口的WS_CHILD style属性,并且我会丢失该窗口的系统菜单,这是不可接受的。使用HwndHost无法解决此问题,因为如果未设置该属性,它将抛出异常

我的问题是,

由于我的应用程序不使用系统菜单,有没有办法直接将停靠应用程序的系统菜单复制到我的应用程序窗口?我所知道的WinAPI菜单函数都需要我从头开始构建菜单,我不知道如何将这些菜单连接到托管应用程序中

我不确定这是否重要,但这两个窗口在同一个进程中。我的应用程序是我停靠的应用程序窗口的插件。

用于获取给定窗口的系统菜单的
humenu
。您应该能够交叉引用您自己窗口的系统菜单和停靠应用程序的系统菜单,复制您自己窗口没有的任何菜单,并通过处理和转发相关消息来转发它们。或者只是复制整个系统菜单,并转发所有菜单


这可能需要一点尝试和错误才能使所有工作正常(特别是如果停靠的应用程序不希望以这种方式使用…),但上述内容可能有助于启动工作。

我不太了解您的框架。通常情况下,插件会停靠在主机上,而听起来就像是将主机停靠在插件上。为什么?[@user…]我也不明白:子窗口不能有(Get/Set)菜单栏,但可以(如果您真的想)有WS_SYSMENU和相应的-(Get)SystemMenu。。。