Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过ActiveX在WPF中使用OpenGL? 我计划在WPF中嵌入一个非托管C++ OpenGL查看器。需求是(除了健壮性和易于开发之外) 适当调整大小 OpenGL查看器区域的上下文菜单(仅适用于与查看器相关的操作) 事件(例如,通过在OpenGL查看器中选择对象触发) WPF对话框应该绘制在OpenGL空间的顶部_C++_Wpf_Opengl_Activex - Fatal编程技术网

通过ActiveX在WPF中使用OpenGL? 我计划在WPF中嵌入一个非托管C++ OpenGL查看器。需求是(除了健壮性和易于开发之外) 适当调整大小 OpenGL查看器区域的上下文菜单(仅适用于与查看器相关的操作) 事件(例如,通过在OpenGL查看器中选择对象触发) WPF对话框应该绘制在OpenGL空间的顶部

通过ActiveX在WPF中使用OpenGL? 我计划在WPF中嵌入一个非托管C++ OpenGL查看器。需求是(除了健壮性和易于开发之外) 适当调整大小 OpenGL查看器区域的上下文菜单(仅适用于与查看器相关的操作) 事件(例如,通过在OpenGL查看器中选择对象触发) WPF对话框应该绘制在OpenGL空间的顶部,c++,wpf,opengl,activex,C++,Wpf,Opengl,Activex,到目前为止,我已经找到了一些关于使用托管WinForm控件(通过C++/CLI包装器)的博客和讨论,但要完成上述所有要求(如果可能的话)似乎有点棘手(甚至有点小技巧) 创建ActiveX控件怎么样?尽管没有创建ActiveX控件的经验,但它的一个优点是它可以在自己的进程中运行 这是个好主意还是我会遇到更多的修补 编辑:我应该更清楚地了解OpenGL查看器。它是一个基于C++ 3D引擎的现有应用程序,只支持OpenGL。移植到支持DirectX的引擎被认为是最后的选择。虽然我没有使用ActiveX

到目前为止,我已经找到了一些关于使用托管WinForm控件(通过C++/CLI包装器)的博客和讨论,但要完成上述所有要求(如果可能的话)似乎有点棘手(甚至有点小技巧)

创建ActiveX控件怎么样?尽管没有创建ActiveX控件的经验,但它的一个优点是它可以在自己的进程中运行

这是个好主意还是我会遇到更多的修补


编辑:我应该更清楚地了解OpenGL查看器。它是一个基于C++ 3D引擎的现有应用程序,只支持OpenGL。移植到支持DirectX的引擎被认为是最后的选择。

虽然我没有使用ActiveX,但我已经完成了我相信您正在努力实现的目标。两条信息帮助我走上了这条路

  • 混合托管和非托管代码

    • 结果显示,托管C++完全不同于非托管C++,数据存储在完全不同的堆中。幸运的是,您可以使用…

    #pragma管理

    #pragma非托管

    • 有关更多信息,请访问

  • OpenGL上下文管理

    • 我采用了一种类似于中描述的方法
    • 如果您需要管理多个OpenGL窗口,wglMakeCurrent和WglShareList将是您的好友

  • 祝你好运

    为什么需要activex?有一些管理PInvoke为基础的包装,做你需要的工作。 但是,既然您正在使用WPF,并且您有一个对象,为什么不使用它呢?如果你熟悉3d引擎,你会欣赏它的优越性(即使在速度方面有一些缺点)


    另一点是,由于OpenGl可以使用纯软件模式进行渲染,我被迫放弃WPF 3d渲染,转而使用OpenGl。如果您计划从服务或
    asp.net
    应用程序在屏幕外位图中渲染某些内容,则需要执行此操作。

    请尝试查看SharpGL。谢谢,要点。但不幸的是,关于观众,我的问题不够详细。请参阅我的编辑。