You're going to be selling commercial Windows software to businesses. Check out the businesses. Figure out what else they buy, and check the recommended platform information. That will give you a good idea of what they have, and what to aim for.
You probably want to learn .NET (hey, you're going to have to learn a new framework anyway), and C# isn't going to be difficult to learn if you're good at C++. That seems to be the standard development environment nowadays, probably for good reasons.
If you're worried about portability, write the back end in C++ and isolate the system-dependent parts. If you're going to sell Windows software to businesses, it has to look like Windows software. It has to behave as they expect. Do not compromise the UI for any advantage in being cross-platform; instead, separate the UI logically. You can always rewrite it later for other platforms.
Similarly, go ahead and use Visual Studio. It's a nice environment, although I sometimes miss gcc, gdb, and make, but it's likely to make you more aware that you're writing a Windows program. If you use Cygwin and gcc, you're likely to not think like a Windows programmer, meaning it won't look like a Windows program, meaning your potential customers are going to have problems with it, meaning less money and more chance for a late mover to capture the market.
I found that moving to Windows programming wasn't difficult. Just be aware that you are learning something new, and that some things are standard in Windows that aren't in Unix. If you aren't afraid of learning new stuff, you'll do fine.
One more thing: Unix applications are frequently notorious for clunky UIs. Unix users tend to be more technical people, who don't pay as much attention to how things look and are much more forgiving of ugly interfaces. In the Windows commercial software world, looks and ease of use matter, and the actual users are likely to be people with a wildly inaccurate mental model of the computer, who wouldn't recognize a line of Python code if it bit them in the face.
You are going to need a reasonably attractive UI that can be easily used by people who don't care about computers per se. This is a stretch for a lot of us. If you don't think there's anything special about an iPhone, you badly need another point of view. Read up on user interfaces, find somebody else with some artistic sense and some idea of usability, anything. UI design is a different skill from programming, and many people have only one of them (around here, people tend to be skilled programmers, and may have some UI skill).