The Default Scenario

In the default scenario, with just plain C++ you will most likely be editing the GUI in C++. you would drawing the boxes and the buttons in raw C++ code.
An example can be found in the link below

https://youtu.be/eOKKN3l4thE?list=WL

He explains how it would take 90 lines of code to do this simple UI. This is something we want to avoid considerinfg our scope

WinForms (Windows Forms)

https://docs.microsoft.com/en-us/archive/msdn-magazine/2008/june/bring-the-simplicity-of-windows-forms-to-native-apps-using-c

We want to see if WinForms will be useful or not. WinForms seems to be heavily tied with C# but there is an option for it to work with C++. We scraped youtube for a bit and found this. In order to use you would need to have .NET installed.

There also a written tutorial here

https://www.bogotobogo.com/cplusplus/application_visual_studio_2013.php

NOW there are things that make us Weary about Winforms

Cons
  • Microsoft stopped support in 2014
  • Can’t make a modern looking UI easily
  • To get it to work in visual studio2019 we needed to download an extension from a sole developer
Pros
  • Drag and drop interface
  • Removes the need to C++ the UI
  • Can be seen without running/compiling the code
  • Native in the Visual Studio IDE

This article recommends not learning it.

In addition, there is this warning on the top of the MSDN page for WinForms. In a way even Microsoft recommends not using it

The MSDN Warning

In addition, a default UI would look like the following and it doesn’t scale on different screen sizes

MFC

MFC stands for Microsoft Foundational Component. It’s older than winform but seems to still be supported by Microsoft.

https://docs.microsoft.com/en-us/cpp/mfc/general-mfc-topics?view=msvc-160

However, we talked with Bryan Maher and it seemed that making an intuitive and Modern GUI would take a lot of customization

He pointed us to the article below.
https://www.telerik.com/blogs/building-modern-performant-desktop-apps-winui-30-the-way-to-go

In order to make WPF usable we had to look into third party apps such as telerik which wasn’t free or even affordable

Can we use HTML and CSS?

After a bit of research, we found the following. Utralight and scitter.

We thought all our problems might be solved since we might have found a way to do a modern UI until we realized that Utralight and scitter don’t work out of the box.
We went through the get started for both of them and none of them ran. Even after googling, we couldn’t fix the problem.
The community seemed small and the StackOverflow tags for the frameworks was small

WIN UI3

Would only work with windows 10 1803 minimum. It works with c++ and C# but the documentation is heavily lenient on the C3 side of things.

In addition Microsoft did a list of why not to use this in production here.

https://docs.microsoft.com/en-us/windows/apps/winui/winui3/#limitations-and-known-issues

Our View

  • No Designer Support
  • C++ startup page didn’t work from the start
  • A simple Hello World app/project was 633 MBs
  • Not officially released until march

UNO Platform (Our Winner)


This platform allows us to use one codebase that would work on windows7 and later. However, this framework doesn’t work with C++ out of the box.

They have a wonderful gallery to explore in the link below with plenty of examples.

https://gallery.platform.uno/

However, it seems to work best with C#. Ryan said that it was easier to wrap our heads around in the Zoom SDK with C# than in C++

The Pros

  • Could potentially be cross-platform
  • Open Source
  • Documentation was friendly and easy
  • It just worked out of the box

How did we stumble across this? It was mentioned in an official video from Microsoft,

https://www.youtube.com/watch?v=M9eOYHiLsrk

It was mentioned as an alternative if people needed windows 7 compatibility

Why not UWP

UWP (universal windows Program)

Now, this was removed as an option from the start since the ZOOM SDK didn’t support it. You can check the article here

Categories:

Comments are closed