opencn

Results 15 comments of opencn

> 我也没什么思路,只要是通过修改WM_NCCALCSIZE这个方式隐藏标题栏,就会出现这个问题,所以我都会手动居中窗口 ![image](https://user-images.githubusercontent.com/3361974/210308681-73a86136-1678-42c6-b93c-65eb05bb3e08.png) 用了`framelesshelper`之后调用resize,Qt会有如上图所示的警告。是不是nativeEvent那边没有处理相关消息,导致错误的出现。

> 这个警告可以忽略,没什么影响。不是什么东西没处理导致的 ![image](https://user-images.githubusercontent.com/3361974/210326157-cc3e38a3-9d78-4c9f-9148-3af6c732b469.png) 如上图:m_window设置为null且return(主要是为了不走下面的流程),位置是可以显示正确的。 ![image](https://user-images.githubusercontent.com/3361974/210325982-c0372793-1fbd-40ff-b44c-71c7f3398bc8.png) 反之如上图:只是return,m_window不置空,则位置显示错误。目前没找到具体原因。

> @1bbb 是不是开启Qt::FramelessWindowHint之后就没这些问题了 1.move的位置是精确的 2. 默认位置还是错的 3.使用Qt::FramelessWindowHint意味着放弃了windows自带的边框,自动停靠等功能都没了

> > 使用Qt::FramelessWindowHint意味着放弃了windows自带的边框,自动停靠等功能都没了 > > 这个没事,可以修改窗口style为`WS_OVERLAPPED`(或者分别添加`WS_CAPTION` `WS_THICKFRAME` `WS_MAXIMIZEBOX`等),这样以来这些原生窗口的特性应该都能恢复 没有原始的边框,我担心会带来很多问题,之前用的框架也是 `Qt::FramelessWindowHint`,在不同的操作系统下面,多屏,多dpi下问题很多。关键有些问题还是偶现问题,建议还是保留windows边框为好

> 但可能这个做法过于扭曲了,会导致设置窗口位置时产生本不应该有的偏移 双屏的时候用`Qt::FramelessWindowHint`,窗体大小也有问题