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); }