Как я могу отключить DwmExtendFrameIntoClientArea?
После того как я позвонил DwmExtendFrameIntoClientArea
в окне, как я могу выключить его снова, оставаясь в режиме Aero?
Я попытался вызвать DwmExtendFrameIntoClientArea со всеми полями, установленными в 0, что, кажется, работает частично, за исключением того, что фон клиентской области моего окна весь черный и показывает артефакты перерисовки.
Я использую Qt, и я звоню setAttribute(Qt::WA_TranslucentBackground, false)
на моем окне после этого, но это, кажется, не имеет никакого эффекта. Как получить правильную перерисовку клиентской области после сброса фрейма окна?
1 ответ
Решение
Простая ошибка - мне тоже нужно было установить Qt::WA_NoSystemBackground
в false, чтобы Qt действительно рисовал окно...
Итак, процедура отключения расширенного кадра:
- Вызов DwmExtendFrameIntoClientArea (вводит в заблуждение, верно?) Со всеми полями, установленными в 0
- Установите WA_TranslucentBackground = false в окне (или не эквивалент Qt)
- Установите WA_NoSystemBackground = false в окне (или не эквивалент Qt)