cef3嵌入win32无标题栏窗口,怎么来移动这个cef窗口?
有个一个win32的窗口,以WS_POPUPWINDOW形式呈现,然后在这个窗口里面嵌入了一个cef3的子窗口,现在不知道怎么来移动这个无标题栏的窗口了。
RECT rect;
GetClientRect(hWnd, &rect);
CefWindowInfo windowInfo;
windowInfo.SetAsChild(hWnd,rect);
g_handler = new CefClientHandler();
g_handler->SetMainHwnd(hWnd);
CefBrowserSettings settings;
CefBrowserHost::CreateBrowserSync(windowInfo,g_handler.get(), url, settings, NULL);
如下图,我怎么将红框里面的这个无标题栏窗口移动呢?我是新手,很多不懂,但工作又要用到,所以希望能给出代码和demo。谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
CEF无法返回WM_LBUTTONUP。。
你好,我在CEF中的OnPreKeyEvent中可以捕获键盘消息,但嵌入MFC窗口后按ESC键MFC窗口无法响应关闭操作,请问怎么将CEF中的键盘消息传递至其所在的MFC窗口呢?我尝试使用PostMessage等都想不通。
还有一种传统的办法,就是自己去处理ON_WM_LBUTTONDOWN、ON_WM_LBUTTONUP、ON_WM_MOUSEMOVE消息,这这些消息中判断鼠标拖拽逻辑:当按住鼠标左键不放并移动鼠标的时候去MoveWindow。
但是这样一来必须要在CefClientHandler中去截获这些鼠标消息,有一种方法是设置鼠标钩子:
不是那么容易,因为捕捉不到WM_NCHITTEST。
你需要给CEF打patch让BrowserWindow返回HTTRANSPARENT,然后才能在最外层窗口捕捉到WM_NCHITTEST(参考https://github.com/netease-youdao/hex)