Visual Studio: Entwicklungsumgebung (IDE). Enthält Visual C++, C++, C#, Visual Basic, etc.
C#: Programmiersprache C#. Plattformabhängig (Windows), Mischung aus Java und C++, Kein Speichermanagagement (Garbage Collector), kann reinen C++-Code ausführen (unsafe)
C++: Plattformunabhängig (Linux/Windows/Mac), Eigenes Speichermanagement nötig (Pointer, new, delete, alloc, malloc, ...), schwieriger zu erlernen.
Visual C++: Wie C++ nur mit zusätzlichen gemanageten Objekten (gcnew). Speichermanagement erfolgt teilweise durch Visual C++. Plattformgebunden (Windows)
C++ würde ich für 3D-Anwendungen empfehlen und alles was auf mehreren Plattformen laufen soll. C# für einfachere Windows-Büroanwendungen. Visual C++, halte ich persönlich für Quark und würde es nie empfehlen.