De plus en plus de produit de développement intègrent des gestionnaires de création d'interface «automatisés». Dans Visual Studio de Microsoft par exemple. Si tu fais une interface en C#, Visual Studio va juste créer automatiquement le code C# qui décrit tes boutons, leur emplacement, leur type. Par contre il sera de ton ressort de programmer l'action qui est appelée.
Après tu peux faire ça en C++ aussi, ou bien d'autres langages.
Pour la différence entre C# et C++ :
Si tu connais bien le C++, le C# sera d'autant plus simple. C'est grossièrement une amélioration du C++ pour les systèmes Windows surtout. L'orienté objet y est encore plus intégré et plus facile à utilisé (à condition d'avoir compris le C++ avant). Il est surtout utile pour utiliser la plateforme ".NET".
Il existe des librairies bien connues (QT) pour faire des interfaces aussi.
Personnellement, je suis ingénieur en génie électrique et je trouve C# utile pour moi, car moins compliqué que QT. Je programme beaucoup de FPGA et j'utilise de petites interfaces Windows pour tester mes cartes.