С некоторого времени я получаю ошибку типа UpdateLayeredWindowIndirect failed for ptDst=...
для моего безрамного окна с закругленными углами: я устанавливаю главное окно без рамки и рисую внутренний виджет с закругленными углами.
Здесь на Qt есть обсуждение , и здесь добавлен код для предупреждения здесь . Они говорят:
Так что, да, это все время молчаливо проваливалось. Это ограничение
в Windows эта прозрачность (WS_EX_LAYERED) работает только для безрамного
окна верхнего уровня.
Однако я установил прозрачность только в главном окне верхнего уровня:
if (m_isMainApplicationWindow && CGuiUtility::isTopLevelWindow(m_widget)) {
m_widget->setAttribute(Qt::WA_NativeWindow);
m_widget->setAttribute(Qt::WA_NoSystemBackground, frameless);
m_widget->setAttribute(Qt::WA_TranslucentBackground, frameless); // causing QTBUG-52206
}
Так, как мне сделать это правильно и избежать ошибки?
Впечатление как это выглядит: