【问题标题】:how to use the cef_menu_handler to create own menu?如何使用 cef_menu_handler 创建自己的菜单?
【发布时间】:2012-07-03 05:14:53
【问题描述】:

最近,我一直在使用 Chromium Embedded Framework 来实现 Web 浏览器。现在我想制作一个右键单击时出现的上下文菜单,但我不知道该怎么做。

【问题讨论】:

    标签: c++ chromium chromium-embedded


    【解决方案1】:

    您需要覆盖CefMenuHandler 中的OnBeforeMenu 方法。在该方法的实现中,使用标准技术显示上下文菜单并返回 true:

    bool MyMenuHandler::OnBeforeMenu(CefRefPtr<CefBrowser> browser,
                                     const CefMenuInfo& menuInfo)
    {
      HMENU hPopupMenu = CreatePopupMenu();
      InsertMenu(hPopupMenu, 0, MF_BYPOSITION | MF_STRING, ID_POPUP_FOO, "Foo");
      TrackPopupMenu(hPopupMenu, TPM_BOTTOMALIGN | TPM_LEFTALIGN, xpos, ypos, 0, m_hWnd, NULL);
      return true;
    }
    

    【讨论】:

    • 非常感谢。我很可能用我的方法意识到这一点。
    • 顺便想实现Drag功能,用我的ClientHandler重写了OnDragEnter方法,但是无法获取dragData的文件名,为什么?我可以在 OnDragStart 中获取文件名。它需要JavaScript吗?期待您的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    • 2012-12-15
    相关资源
    最近更新 更多