zoukankan      html  css  js  c++  java
  • CEF 中的那些坑

    CEF (Chromium Embedded Framework) 的大名也听说很久了,最近因为客户的需求,简单地研究了一下。结果遇到了一个接一个的坑,且慢慢道来。比之前用QtWebkit的坑还要多和深。

    其实,这次的程序很简单,主要是构建一个最前端显示的无边框的浏览器窗口,先从远端获取窗口大小和key,然后播放链接中的视频。从CEF1代码包里自带的cefclient下手,在win32下就进行修改。

    1. Win32相关的窗口参数和位置设置

    2. 去除浏览器窗口的右键菜单

     这个问题很无奈,经搜索说是可以通过OnBeforeMenu中阻止菜单弹出。先试试吧。

    // ClientHandler implementation.
    class ClientHandler : public CefClient,
                          public CefLifeSpanHandler,
                          public CefLoadHandler,
                          public CefRequestHandler,
                          public CefDisplayHandler,
                          public CefFocusHandler,
                          public CefKeyboardHandler,
                          public CefPrintHandler,
                          public CefV8ContextHandler,
                          public CefDragHandler,
                          public CefPermissionHandler,
                          public CefGeolocationHandler,
                          public DownloadListener,
                          public CefMenuHandler {
    // ...
    

     添加了CefMenuHandler,重写 OnBeforeMenu 函数。

      // 
      virtual bool OnBeforeMenu(CefRefPtr<CefBrowser> browser,
          const CefMenuInfo& menuInfo) { return true; }
    

    结果完全无效。

    暂时使用直接运行JS命令来绕过这个坑:

    document.oncontextmenu = function() {return false;};

    3. 去除浏览器窗口的滚动条程序要求不能显示滚动条,但是页面超出了设定的窗口大小,始终无法去除滚动条。尝试各种Windows API 方法。

        CefWindowHandle hWnd = browser->GetWindowHandle();
        DWORD dwOldStyle = ::GetWindowLongPtr(hWnd, GWL_STYLE);
        DWORD dwNewStyle = dwOldStyle & (~(WS_HSCROLL|WS_VSCROLL)) ;
    
        SetWindowLongPtr(hWnd, GWL_STYLE, dwNewStyle);
        ShowScrollBar(m_BrowserHwnd, SB_BOTH, FALSE);
    
  • 相关阅读:
    c 语言 运算符 优先级
    回文字符串个数
    最小操作数
    将一个二叉树转化为双向链表,不开辟新空间
    两个整数集合的交集 ———— 腾讯2014软件开发笔试题目
    python download
    Spring5.2.X源代码编译-问题-Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/context]
    Spring5.2.X源代码编译-问题-找不到CoroutinesUtils
    Spring5.2.X源代码编译
    入行四年的思考
  • 原文地址:https://www.cnblogs.com/huys03/p/3215206.html
Copyright © 2011-2022 走看看