我们正在开发WPF中的布局管理器,其具有可由用户移动/调整大小/等的视口.视口通常通过布局管理器中我们控制的提供程序填充数据(图片/电影/等).我的工作是检查它是否也可以在视口中托管任何外部Windows应用程序(即记事本,计算,土坯阅读器等).我遇到了一些问题.
大多数资源都指向使用HwndHost类.我正在试验微软本身的演练:http://msdn.microsoft.com/en-us/library/ms752055.aspx
我已经对此进行了调整,因此列表框将替换为外部应用程序的Windows句柄.任何人都可以帮我解决这些问题:
ListBox放置了该子窗口.我不认为我需要外部应用程序.如果我省略它,我必须使外部应用程序成为子窗口(使用来自user32.dll的Get/SetWindowLong设置GWL_STYLE为WS_CHILD).但是,如果我这样做,应用程序的菜单栏消失(因为WS_CHILD样式),它不再接收输入.HwndHost(因此可以移动到视口外).有什么办法可以阻止吗?HwndHost,但WindowsFormHost作为讨论在这里.它工作(并且更简单!)但我无法控制应用程序的大小?另外,WinFormHost真的不是这个意思吗?感谢您指出正确的方向.