CEF中select选项错位的解决方法

使用cef加载页面,移动窗口后选项的位置并不会变化,仍保持上次打开的位置。

经过google查找到这是一个已经解决了的问题:https://bitbucket.org/chromiumembedded/cef/issue/1208/combobox-drop-down-menu-is-displaced

后续版本的cef加入了 CefBrowserHost::NotifyMoveOrResizeStarted() ,需要在主窗体move里调用此方法。

 

我使用的是cef .NET的包装库chromiumfx,其它库应类似,代码如下

        private static int WM_MOVE = 0x0003;

        protected override void WndProc(ref Message Msg)
        {
            if (Msg.Msg == WM_MOVE)
            {
                if (WebBrowser.BrowserHost != null)
                {
                    WebBrowser.BrowserHost.NotifyMoveOrResizeStarted();
                }
            }
            base.WndProc(ref Msg);
        }

  

posted @ 2015-06-23 16:23  超软毛毛虫  阅读(1825)  评论(0编辑  收藏  举报