首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NPAPI插件之上的HTML

NPAPI插件之上的HTML
EN

Stack Overflow用户
提问于 2011-12-04 08:14:49
回答 2查看 2.5K关注 0票数 4

在我使用FireBreath和OpenGL编写完浏览器插件,并使用object标记嵌入插件后,我尝试在插件上覆盖各种HTML元素。不幸的是,无论我怎么尝试,标签和插件图形总是停留在页面上任何其他HTML元素的顶部。

据我所知,flash插件支持HTML覆盖,如下所示:

代码语言:javascript
复制
<param name="wmode" value="transparent">

有没有一种通用的方法来在或标签上启用HTML覆盖?如果没有,有没有办法在NPAPI/ActiveX插件上启用覆盖功能,或者FireBreath以某种方式支持这个特性?

自从我开始编程以来,StackOverFlow一直是我的主要资源,非常感谢大家!

EN

Stack Overflow用户

发布于 2011-12-04 09:33:32

有两种类型的插件:有窗口的和无窗口的。FireBreath确实支持无窗口插件(从插件类中的isWindowless函数返回true。如果你做一个无窗口的插件,那么你可以在插件上覆盖HTML。如果你做的是一个窗口插件,那么你就不能。

然而,这并不像听起来那么简单。如果你仔细阅读,你会发现wmode=transparent的flash性能远不如普通的wmode好,原因是为了绘制无窗口,你必须在浏览器的指示下才能绘制。幸运的是,您可以让浏览器告诉您重绘(在FireBreath中,通过对将作为窗口获得的PluginWindowlessWin对象调用InvalidateWindow )。

不幸的是,在无窗口绘制模式下,您得到的不是hWND --而是hDC,而且它只在draw事件期间有效(FireBreath中的RefreshEvent)。据我所知,你不能在hDC上创建一个opengl绘图上下文,因为它可能会在绘图调用之间改变或消失,所以我见过的opengl插件在Windows上处理无窗口绘图的唯一方法就是在屏幕外绘制,然后使用GDI将数据块传输到hDC。

下面是一个使用任意一种绘图类型(有窗口或无窗口)绘制原始位图的示例,它可能会帮助您巩固对我在上面所解释的内容的理解:https://gist.github.com/1068352

票数 7
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8372162

复制
相关文章

相似问题

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