铬嵌入式检测按钮按下

时间:2016-06-21 21:34:27

标签: c++ user-interface chromium-embedded

我想使用Chromium Embedded Framework作为我的OpenGL应用程序的GUI。

我正在使用离屏渲染。

如何检测单击HTML按钮/链接的时间?

我试图谷歌这个但是如此通用的搜索词只有噪音。 一般用法维基也不包含此内容。

2 个答案:

答案 0 :(得分:2)

我认为你应该在JS代码中捕获一个事件并向C ++代码发送消息。可以使用此处描述的消息路由器完成: https://bitbucket.org/chromiumembedded/cef/wiki/GeneralUsage#markdown-header-asynchronous-javascript-bindings

使用JS集成机制也可以实现自定义消息路由器: https://bitbucket.org/chromiumembedded/cef/wiki/JavaScriptIntegration.md

答案 1 :(得分:1)

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

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

行动顺序:

  1. 窗口接收鼠标移动事件。
  2. Window将其传递给您的CEF实例。
  3. 如果CEF确定需要申请:将状态悬停在您的按钮上,则会调用window.invalidateArea(areaOfTheButton)。
  4. 您可以通过更新OpenGL场景来处理该window.invalidateArea(),包括新版本的屏幕外位图。
  5. 从CEF您还应该收到各种辅助DOM事件以响应鼠标移动/上/下/等。在窗口。
  6. 并检查一下:http://sciter.com/sciter-and-directx/ - 它是带有我的Sciter引擎的集成HTML / CSS UI的DirectX窗口。目前我正在为OpenGL设计相同的内容。