首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SetParent COM和WPF

SetParent COM和WPF
EN

Stack Overflow用户
提问于 2009-07-15 11:36:06
回答 3查看 1.6K关注 0票数 0

我有两个屏幕。一个是用vb创建的,另一个是用WPF创建的。

我必须将vb嵌入到wpf中。

因此,我有了一个想法,首先创建一个新的Windows窗体,并使用win32应用编程接口函数"SetParent“将vb屏幕嵌入到windows窗体中。其次,使用wpf WindowsFormsHost控件将winform宿主在wpf窗体中。

在一个独立的测试应用程序中,一切都很顺利。但是,当我尝试在完整的大型wpf应用程序中执行此操作时,winform被加载为空,vb屏幕闪烁,然后立即消失。

有什么可行的解决方案吗?

请帮帮我..真的很匆忙。

谢谢。

附言:如果有人有更好的方法在wpf中嵌入vb6…我想听一听。

内里亚岛

EN

回答 3

Stack Overflow用户

发布于 2009-07-15 11:53:17

可以将VB6屏幕公开为ActiveX控件吗?如果是这样的话,添加导入ActiveX控件,然后将其添加到WindowsFormsHost的实例中可能会更干净。然后,您可以将WindowsFormsHost视为普通的WPF控件,并将其添加到WPF应用程序中。

票数 1
EN

Stack Overflow用户

发布于 2010-01-25 04:35:43

在使用SetParent传递hWnd之前,必须添加: WindowsFormsHost?.Child =新System.Windows.Forms.Control

票数 0
EN

Stack Overflow用户

发布于 2011-01-26 21:34:33

您是否正在以编程方式启动vb应用程序?如果是这样,您需要等待,直到进程加载并为vb-window创建正确的窗口句柄。

WPF窗口也必须先初始化,然后再尝试嵌入其他窗口。

你是否为孩子设置了正确的大小( vb窗口)?

如果想找出窗口的句柄,可以使用FindWindow / FindWindowEx或WindowEnum。如果你想对一个有动态标题的窗口使用FindWindow,你应该搜索类名(希望只有一个窗口有它)。

是否为孩子设置了WS_Child和~WS_Popup样式?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1130889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档