opencn
opencn
> 我也没什么思路,只要是通过修改WM_NCCALCSIZE这个方式隐藏标题栏,就会出现这个问题,所以我都会手动居中窗口  用了`framelesshelper`之后调用resize,Qt会有如上图所示的警告。是不是nativeEvent那边没有处理相关消息,导致错误的出现。
> 这个警告可以忽略,没什么影响。不是什么东西没处理导致的  如上图:m_window设置为null且return(主要是为了不走下面的流程),位置是可以显示正确的。  反之如上图:只是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`,窗体大小也有问题