Фантомный белый ящик при использовании окна приложения и фона Windows 11 Mica в QML, qt 6.10.1C++

Программы на C++. Форум разработчиков
Anonymous
Фантомный белый ящик при использовании окна приложения и фона Windows 11 Mica в QML, qt 6.10.1

Сообщение Anonymous »

Я экспериментировал с применением фонового эффекта слюды в 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

Вернуться в «C++»