Руководства по использованию WinUI с C ++ - PullRequest
2 голосов
/ 19 июня 2020

Я постараюсь кратко изложить мою проблему:

  • У меня есть устаревший проект C ++, который использует WinAPI для создания элементов пользовательского интерфейса и управления ими. Я хочу заменить это более современным фреймворком, который поддерживает OOP и имеет какой-то визуальный дизайнер. Я намереваюсь достичь этого, постепенно заменяя старый код на основе WinAPI новым фреймворком (например, я мог бы ввести новое всплывающее окно, которое использует новый фреймворк, в то время как остальная часть пользовательского интерфейса по-прежнему будет использовать старые оконные процедуры и еще много чего)
  • Мой первоначальный план состоял в том, чтобы использовать Qt, поскольку он позволяет мне удобно оборачивать UI-код в объекты, которые я могу легко создавать и управлять. В нем также есть конструктор, который позволяет мне создавать настраиваемые элементы пользовательского интерфейса (включая автоматическое c управление компоновкой), расширение Visual Studio, и в целом прошлый опыт показал мне, что Qt вполне подходит для моих целей. Однако здесь пользователи предупредили меня, что он плохо взаимодействует с WinAPI, и мне в основном придется перестраивать приложение с нуля.
  • Было предложено использовать вместо этого WinUI, то есть XAML в сочетании с C ++ / WinRT , поскольку они предположительно предлагают ту же гибкость, что и описанные выше. Мне удалось успешно воспроизвести результаты руководства «UWP-элемент управления хостом в приложении Win32» , но, похоже, помимо этого мало полезного материала.
  • Документацию Microsoft довольно сложно найти перейдите, чтобы получить четкий ответ. На данный момент приведенное выше руководство наводит меня на мысль, что я все еще застрял бы с использованием WinAPI, поскольку, похоже, нет очевидного способа обернуть код пользовательского интерфейса в объекты, предпочтительно те, которые я могу получить из существующей базы классы (например, какой-то объект basi c Window)

У меня есть следующая среда для работы:

  • Последний уровень функций C ++, поддерживаемый MSV C
  • Visual Studio 2019
  • Windows 10 (т.е. я не возражаю, если я больше не совместим с Windows операционными системами)

Что Мне нужно:

  • Явный ответ на вопрос, можно ли работать с XAML и C ++ / WinRT аналогично тому, как разрабатывают код пользовательского интерфейса в Qt с помощью C ++. Точная четность не обязательна, я просто хочу избавиться от хлопот с управлением пользовательским интерфейсом с помощью WinAPI, когда мне практически все приходится делать «вручную»

  • Если вышесказанное верно, то где могу ли я найти руководства по различным этапам рабочего процесса? Как мне создать «объект окна», как создать окно с управлением компоновкой, как мне обработать события пользовательского интерфейса и т. Д. c.?

  • Возможны ли вышесказанные если это необходимо сделать в контексте устаревшего приложения WinAPI, которое я пытаюсь обновить?

1 Ответ

1 голос
/ 03 сентября 2020

Теперь у вас есть новая опция - WinUI 3

WinUI 3 предлагает XAML и пользовательский интерфейс «Современное приложение» из C ++, за исключением того, что переход на платформу WinRT не прерывается (он может нормально работать с простым старым Win32 ). Поэтому он идеально подходит для устаревшего проекта C ++ на Windows.

https://docs.microsoft.com/en-us/windows/apps/winui/winui3/

...