MusicPlayer2 icon indicating copy to clipboard operation
MusicPlayer2 copied to clipboard

自带的标题栏样式在Windows11下顶部有白条

Open IzayoiAster opened this issue 1 year ago • 5 comments

而切换到系统标题栏样式又不是很和谐,请问能否优化一下 image

IzayoiAster avatar Aug 07 '23 03:08 IzayoiAster

win11,一样有这样情况。22H2 版本号22621.1992

wasyddd avatar Aug 15 '23 07:08 wasyddd

我win11也有这个情况

FxmlesXD avatar Aug 25 '23 14:08 FxmlesXD

看了一下,发现 void CMainDialogBase::ShowSizebox(bool show) { if (show) { ModifyStyle(0, WS_SIZEBOX, SWP_FRAMECHANGED); // 还原大小边框 } else { ModifyStyle(WS_SIZEBOX, 0, SWP_FRAMECHANGED); // 去掉大小边框 } } 这个函数有问题 如果去掉大小边框,白条就消失了(当然,也会造成无法通过拖拽窗口边缘改变大小) 如果想去掉白条,又可改变大小 那么就需要自己实现一个拖拽窗口边缘改变大小的功能

FxmlesXD avatar Aug 27 '23 16:08 FxmlesXD

看了一下,发现 void CMainDialogBase::ShowSizebox(bool show) { if (show) { ModifyStyle(0, WS_SIZEBOX, SWP_FRAMECHANGED); // 还原大小边框 } else { ModifyStyle(WS_SIZEBOX, 0, SWP_FRAMECHANGED); // 去掉大小边框 } } 这个函数有问题 如果去掉大小边框,白条就消失了(当然,也会造成无法通过拖拽窗口边缘改变大小) 如果想去掉白条,又可改变大小 那么就需要自己实现一个拖拽窗口边缘改变大小的功能

虽然只有上面宽一点不过其实这个边框是四面等宽的,其他三面有透明区域 这里做不出来的主要问题是现在的自绘界面(一个CStatic控件)吃掉了所有点击消息(这是正常的,也需要这样) 自绘标题栏的各种功能就是在这个CStatic控件上自己实现的 但是播放列表是主窗口的,消息由主窗口处理,就很割裂 另外去掉这个边框多半是需要再自绘一个边框(比如一个像素宽)的,不然感觉不太好 观察其他没有边框的MFC程序比如MPC-BE(按快捷键1)是占用窗口内部的数个像素做这个功能, 而这种方式只适合没有标题栏(连自绘的也没有)的情况(也就是窗口内部全是一致的内容),不然关闭按钮等很难搞 还有就是如果MFC窗口程序(主界面是窗口而不是只提供某种内容)适合去掉边框为什么任务管理器也是这样的 (不知道win11改了没有) 圖片

lrisora avatar Aug 27 '23 21:08 lrisora

Snipaste_2023-08-28_12-28-26

win11也是这样的

改天我再想办法尝试一下能不能帮忙把这个问题修复了

FxmlesXD avatar Aug 28 '23 04:08 FxmlesXD