Я экспериментировал с применением фонового эффекта слюды в Windows 11 к приложению QML с использованием Windows 11 24H2 с Qt 6.10.1.
Эффект слюды работает, но в окне приложения есть белый прямоугольник, похоже, он связан с исходной шириной и высотой окна, поскольку при изменении размера окна он не увеличивается, а фон слюды за ним отображается так, как должен (см. видео, в котором объясняется, что Я имею в виду)
Вспомогательный класс:
#define WINVER 0x0A00
#define _WIN32_WINNT 0x0A00
#ifndef DWMWA_SYSTEMBACKDROP_TYPE
#define DWMWA_SYSTEMBACKDROP_TYPE 38
#endif
#include "micahelper.h"
#include
#include
#include
#include
// Define the DWM_SYSTEMBACKDROP_TYPE enum
enum DWM_SYSTEMBACKDROP_TYPE
{
DWMSBT_AUTO,
DWMSBT_NONE,
DWMSBT_MAINWINDOW,
DWMSBT_TRANSIENTWINDOW,
DWMSBT_TABBEDWINDOW,
};
void MicaHelper::enableMicaForWindow(QWindow *window)
{
if (!window) {
qDebug() winId());
if (hwnd) {
DWM_SYSTEMBACKDROP_TYPE backdropType = DWMSBT_MAINWINDOW;
HRESULT hr = DwmSetWindowAttribute(
hwnd,
DWMWA_SYSTEMBACKDROP_TYPE,
&backdropType,
sizeof(backdropType)
);
if (FAILED(hr)) {
qDebug()
Подробнее здесь: https://stackoverflow.com/questions/798 ... background