CefView / QCefView

A Qt Widget encapsulated CEF view based on QWidget
https://cefview.github.io/QCefView/
GNU Lesser General Public License v2.1
546 stars 144 forks source link

使用frameless时,如果border设置为0,鼠标无法拖拽resize #13

Closed hcaihao closed 2 years ago

hcaihao commented 3 years ago

拖拽图标出不来,Chrome_RenderWidgetHostHWND窗口会把WM_NCHITTEST事件吃掉

tishion commented 2 years ago

QCefView目前集成CEF采用的window模式,无法透传窗口消息到Qt内部。

tishion commented 2 years ago

最新版本已经支持OSR渲染模式,QCefView已经可以像其他Wdiget一样,可以拥有自己的Children Widget,并且可以正常透传Native Event。

hcaihao commented 2 years ago

赞,抽空我来测试一下

leashi commented 2 years ago

刚用最新版,CEF_USE_OSR模式,测试了无边框窗口,结果如下:

  1. 鼠标在窗口边缘时,可以调整窗口大小,能够正常处理。
  2. 鼠标在窗口稍微内部一点(超过你设置的可拉伸边框的距离,还没到容纳QCefView的子窗口)时,会吃掉WM_NCMOUSEMOVE,WM_NCHITTEST消息。注:在无边框情况,我用一个label控件模拟标题栏的作用,在这上面按住鼠标可以拉动窗口位置。

我测试过的版本 : cef版本:99.2.15+g71e9523+chromium-99.0.4844.84,95.7.18+g0d6005e+chromium-95.0.4638.69 qt版本:6.3.0,5.15.3 都会出现上述情况。