2016-06-21 46 views
0

我想使用Chromium嵌入式框架作为我的OpenGL应用程序的GUI。铬嵌入式检测按钮按

我正在使用离屏渲染。

如何检测HTML按钮/链接何时被点击?

我试图谷歌这个,但与通用搜索词只有噪音。 一般使用wiki也不包含此内容。

回答

1

您是否将OpenGL应用程序中的任何UI事件传递给CEF?

一般来说,您应该将OpenGL CEF实例附加到同一窗口。您还应该覆盖无效窗口区域的请求,以通知您的OpenGL代码需要重新渲染包括屏幕缓冲区内容的窗口。的动作

序列:

  1. 窗口接收鼠标移动事件。
  2. 窗口将它传递给您的CEF实例。
  3. 如果CEF确定需要应用:将悬停状态悬停在您的按钮上,则会调用window.invalidateArea(areaOfTheButton)。
  4. 通过更新OpenGL场景(包括新版本的离屏位图),可以处理该window.invalidateArea()。
  5. 从CEF你也应该接收各种辅助DOM事件响应鼠标移动/向上/向下/等。在窗口上。

并检查此:http://sciter.com/sciter-and-directx/ - 它是与我的Sciter引擎集成的HTML/CSS UI的DirectX窗口。目前我正在设计相同的,但为OpenGL。

+0

我使用CEF作为浏览器没有问题,它可以通过这里所描述的消息路由器来完成。我只是不能捕获按钮在C++代码中按回。我正在寻找回调/事件。我不知道在哪里看。 – akaltar

+1

看来CEF并没有提供订阅DOM事件的简单选项。因此,您需要在其中注册自己的本地函数,并在脚本中使用document.addEventListener(yourfunc)将其附加到DOM文档对象。您将需要使用ExecuteJavaScript函数来运行您的安装脚本。 。参见: https://bitbucket.org/chromiumembedded/cef/wiki/JavaScriptIntegration#markdown-header-using-js-callbacks –