Окно без полей в Qt в Windows, которое поддерживает встроенные функции: аэросъемка, изменение размера DWM и минимизация

Я пытаюсь создать окно без полей в Qt в Windows, которое поддерживает встроенные функции: аэро-привязку, изменение размера и минимизации DWM, встряхивание и т. Д.
Как Office 2013 или Visual Studio 2012. Но они написаны на wpf.
В wpf и чистом WinApi есть много примеров, но я не смог найти ни одного примера Qt.

Недавно я нашел приложение Battle.net от Blizzard (Скриншот). Они используют QT 4.8.5, и их главное окно выглядит и ведет себя именно так, как я хочу в моем приложении.

Кто-нибудь знает как это сделать?

Спасибо за вашу помощь.

8

Решение

Я нашел решение этой проблемы.

Вместо того, чтобы использовать главное окно Qt, я создал простое окно WinAPI без полей, как в это ТАК обсуждение. Затем я добавил QWinWidget из проекта QtWinMigrate и заполнил им окно.

В результате главное окно и ребра изменяемого размера обрабатываются WinAPI, а все внутри главного окна обрабатывается QWinWidget. А с QWinWidget вы можете создавать графический интерфейс Qt, как и в любом другом приложении Qt.

Вот небольшой пример проекта на GitHub.

7

Другие решения

Возможно, это может помочь вам, специфичные для Windows классы Qt WinExtras

http://qt-project.org/doc/qt-5/qtwin.html

http://qt-project.org/doc/qt-5/qtwinextras-module.html

Кроме того, вы можете использовать QT Quick 2.0 для разработки пользовательского интерфейса, похожего на WPF

1