Hello. Do you want to code under Windows? You want a good thing :)
I am happy to share with you my own experience as a developer. At first, I learned to code using C# because of its simplicity according to C++ which is more complicated. C# is something between C and C++, (a bullshit can say someone, but it's my point of view) but it does not allow you to dev something out of Win systems. Sometimes it seems to me that it is like a golden cage. I started to read some books about C#, but I don't like the way they want to teach C#. It's too technical with baffling words. So I prefer video. I don't talk about YT which is more conventional, but full of bad codes. I learnt C# using some video tutorial on Udemy. After a few months I started to create some solid applications using C#... I guess that you could like it, creating intuitively some window/buttons quickly for your applications, adding code, etc. It's a good start.
But C# leaves me a strange impression - something unfinished. I am not disappointed. I created many games using C# under Unity, but I want more. For this reason, I started to learn C++ and I really appreciate it. I use the same way - a first approach by video tutorial on Udemy and many attempts in order to create first console applications. It was something easy because I learnt before C# which uses (more or less) the same semantics. Now I prefer to use pure C++ code so as to create my games for Jam sessions.
So we could talk about all those opportunities all day. What do you want to create specifically ? Games, console applications, apps with interfaces... ? I think that this is the right question. You started an interesting thread. Many people will share with you their point of view. I shared mine ++
C# is the way to go. C# is heavily integrated with .NET, so you'll be learning both just by learning C#.
You can create applications quite easily with C# and Visual Studio - perhaps disappointingly easy (some people want it to be super hard!)
You'll need a virtual machine for your Mac computer, but I do recommend just becoming a Windows user. To each their own, but it's a cheaper alternative with it's own benefits.
Win32 is really used directly when programming in C++. However, I wouldn't recommend programming directly in Win32 - it's a huge pain. There are many external libraries you can use, like wxWidgets, which will be easier to program with and create windows APIs.
But again, the experience you'll get making GUIs with C# rivals all of that.
I also would recommend C# for the GUI part. It seems to be the easiest way to create a GUI app.
If you have some C++ code you can put it into a .dll and call it from the GUI.