If you want to program for MS Windows, and you want a desktop application that's not using something like OpenGL or DirectX, then you really don't want C++. The framework for Windows UI apps in C++ is MFC, which...I don't even want to go there, the nightmares never stop... However, C# is a good intermediate language. Like already said, it's similar in syntax to Java with subtle differences but you should pick those up fine.
If you want to write automation utilities, services, underlying libraries where performance is more important than productivity, C++ is the right tool for the job. If you want to program for Linux, again C++ is probably the wrong choice (python and GTK+ is probably the right choice). Don't use a programming language because you think it's more powerful, or has better control unless you need it. Nowadays there are so many options it's more about using the right tool for the job.