issues/776

This commit is contained in:
恍兮惚兮 2024-05-30 08:32:21 +08:00
parent e872c05d5c
commit d271e69e21

View File

@ -152,16 +152,16 @@ DECLARE void _SetTheme(
// return false;
// }
// https://learn.microsoft.com/zh-cn/windows/win32/api/dwmapi/ne-dwmapi-dwm_systembackdrop_type
// 设置背景
static const DWM_SYSTEMBACKDROP_TYPE BACKDROP_MAP[] = {
DWMSBT_AUTO, DWMSBT_TRANSIENTWINDOW, DWMSBT_MAINWINDOW, DWMSBT_TABBEDWINDOW};
DWM_SYSTEMBACKDROP_TYPE value = BACKDROP_MAP[(int)backdrop];
// 非常诡异这里marBACKDROP_MAPvalue的声明顺序会导致在win7-32位上崩溃原因未知。
MARGINS mar{-1, -1, -1, -1};
// 这个最重要不可以跳过否则transaprent会黑。win7无效仍然是黑的所以win7不可以使用QTWIN11主题。
DwmExtendFrameIntoClientArea(_hWnd, &mar);
// https://learn.microsoft.com/zh-cn/windows/win32/api/dwmapi/ne-dwmapi-dwm_systembackdrop_type
// 设置背景
static const DWM_SYSTEMBACKDROP_TYPE BACKDROP_MAP[] = {
DWMSBT_AUTO, DWMSBT_TRANSIENTWINDOW, DWMSBT_MAINWINDOW, DWMSBT_TABBEDWINDOW};
DWM_SYSTEMBACKDROP_TYPE value = BACKDROP_MAP[backdrop];
// 不管操作系统版本了,硬设置就行,测试不会崩溃,让系统自己处理。
DwmSetWindowAttribute(_hWnd, DWMWA_SYSTEMBACKDROP_TYPE, &value, sizeof(value));
}