Keep in mind, C++11's "auto" keyword is translated at compile time; using it won't slow down your program at all, though it will increase compile time a bit and make it more or less readable. Using it for 'int aNum;', less readable; using it for 'std::vector<std::map<std::string,myClass>>::iterator mapIterate', more readable.
@Max: If you can't include a reference directly to 'System.X.Y.Z' try adding a reference to 'System.X.Y' and work your way up the namespace chains until something works. Sometimes they want you to use something like System.Windows instead of System.Windows.Input.
If you do go the XNA route, it has its own keyboard input stuffs:
http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.input.aspx@MaximumZero: For graphics, there are multiple ways with C++, all of which I can guarantee you will learn a huge amount from but which may also be above the level of effort you want to put in.
First, there are C++ graphics APIs including DirectX, OpenGL, and SDL. From these, you will both fill in any gaps in your C++ knowledge, as they are pretty complex on that level, and you will get a really great understanding of the entire graphics programming pipeline. DirectX is Windows-only, but has a lot of really good tutorials, sample code, and msdn documentation. OpenGL is cross platform, though in my limited experience is rather difficult to learn simply because it has that sort of open source feel to it, where documentation is spread all over the place and there are a variety of very different versions and addons. I don't have any experience with SDL though.
The second option for C++ is learning managed C++ and using XNA through CLR. XNA is essentially a simplified wrapper for DirectX, primarily for C#. Managed C++, at its core, is C++ which does automated garbage collection. CLI/CLR is part of Microsoft's .NET framework which pretty much allows you to program in any of several different languages and have it compiled into your program. (not recommended; managed C++ is a pain in the rear, slow, and you would essentially be doing C# anyway)
Or if you are willing to learn another language for it, C# and XNA are a pretty good starting point, and I would recommend looking into those, as they let you get a foot in the door of more advanced stuff like DirectX without introducing conceptually complicated things like HLSL vertex and pixel shaders or the details of the rendering pipeline.
@MaximumZero AND Everyone else:
Awesome tutorials, particularly for DirectX graphics programming with C++ can be found at the link below, if you do choose to go down that road. Full source code and tutorials with a quality to which I have yet to find a worthy challenger.
http://www.rastertek.com/tutindex.html