首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActiveX初始化: AxHost.State对象

ActiveX初始化: AxHost.State对象
EN

Stack Overflow用户
提问于 2012-01-05 07:31:58
回答 3查看 6.3K关注 0票数 4

我正在尝试使用WinFormsHost-Control将Unity3D-ActiveX控件嵌入到WPF-Form中。

实际上,当在VS的属性窗口中设置路径时,它工作得很好,但是当在我的代码文件中设置它时,它不会加载任何东西。这是该控件的一个已知问题,但我认为我可以简单地复制表单设计器的创建代码并手动对其进行初始化。

在查看初始化代码时,我注意到代码中没有src属性,但在属性窗口中使用了该属性。手动设置属性不起作用(抛出错误)。

经过一些测试后,我决定检查孔组件的src属性,但src属性从未设置过,我甚至找不到路径的字符串。

最后的想法

我注意到src-path只能位于一个位置:由window forms designer生成的资源,它是AxHost.State-type的一个对象。

问题

如何创建一个有效的AxHost.State对象来初始化应该加载我指定的Unity3D文件的Unity3D-ActiveX控件?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-20 17:31:29

这是一个有效的解决方案,但有点慢(注意:您需要在窗体设计器中初始化控件一次,然后将OcxState对象复制到程序集资源中):

代码语言:javascript
复制
// Create a ocx state object with the correct path
_Unity = new AxUnityWebPlayerAXLib.AxUnityWebPlayer();
((System.ComponentModel.ISupportInitialize)(_Unity)).BeginInit();
_Unity.OcxState = (AxHost.State)(Resources.Unity3DOcx);
_Unity.TabIndex = 0;
Controls.Add(_Unity);
((System.ComponentModel.ISupportInitialize)(_Unity)).EndInit();
_Unity.src = _File;
AxHost.State state = _Unity.OcxState;
_Unity.Dispose();

// Create the unity web player object
_Unity = new AxUnityWebPlayerAXLib.AxUnityWebPlayer();
((System.ComponentModel.ISupportInitialize)(_Unity)).BeginInit();
this.SuspendLayout();
_Unity.Dock = DockStyle.Fill;
_Unity.Name = "Unity";
_Unity.OcxState = state;
_Unity.TabIndex = 0;
Controls.Add(_Unity);
((System.ComponentModel.ISupportInitialize)(_Unity)).EndInit();
this.ResumeLayout(false);
票数 4
EN

Stack Overflow用户

发布于 2012-07-24 01:52:43

如果你想在ActiveX Unity Web player的disableContextMenu属性中设置一个参数,你需要在你的程序中准备IPropertyBag.Read方法。

我制作了一个示例C++程序(Visual Studio2010),它在disableContextMenu属性中设置了"true“参数。请参阅http://www.nibiirosoft.com/download/UnityActiveXSample.zip

使用这些代码,我制作了一个.unity3d文件播放器(http://www.nibiirosoft.com/Product/UniPlayer.html)。

我希望它能对你有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2012-01-20 00:33:23

反编译动态链接库"AxUnityWebPlayerAXLib“并直接在代码中添加src参数解决了这个问题。

一切都很好,但我仍然有一个"disableContextMenu“的问题。

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

https://stackoverflow.com/questions/8735616

复制
相关文章

相似问题

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