If you don't plan on acutally selling the game I would go old school and pick up Visual Basic 6.0. That will teach you the logic behind programming and you can get your feet wet with Direct X.
I wouldn't recommend visual basic, you'll probably have a hard time going from that to C#. C# isn't that hard to get started with so I'd just go straight in there, you can avoid the bad habits you tend to get with VB
Once you understand how to draw pictures, flip pictures, create moving particles, calculate where bullets are going to land etc etc, then I would move up to C++. The major benefit with going really old school (2006ish) is that you can still make amazing FPS, RPG etc games with good graphics and it takes A LOT less code that C or C++ would. Once you learn the logic behind writing a video game, then move to C++ for better performance (game will run faster)
Going old school doesn't let you create things more easily - VB
.NET is just as effective, if not more so (I haven't touched VB6 for a number of years and with good reason!) VB
.NET does take a lot less code than C or C++, but that's why I'd steer clear of those two altogether and go with C#... There's really very few new projects that are started in them these days, it tends to be a mixture of Java / .Net / Objective-C (for apple software.)