There are two fundamentally different kinds of C++ applications you can develop with Visual C++ 2008.
You can write applications that natively execute on your computer. These applications referred to as native C++ programs. You write native C++ programs in the version of C++ that is defined by the ISO/ANSI (International Standards Organization/American National Standards Institute) language standard. You can also write applications to run under the control of the CLR in an extended version of C++ called C++/CLI. These programs referred to as CLR programs, or C++/CLI programs.
Well, C++ is just a language, with quite a small standard library, but with A LOT of provided compilers, frameworks and third party libraries. From my point of view ( and many others, I think ) g++ is the best compiler for C++. Visual C++ is quite a generic name: it's the msvc compiler, the visual studio IDE and a library/framework that wraps winapi to build windows graphical applications( aka MFC ).
Learning Visual C++ actually means learning how to use the MFC framework and Visual Studio IDE, that, from my point of view is quite useless: 1. it costs a lot; 2. it's not portable on other os ( of course, MS policy ) 3. as far as I know Microsoft outsourced MFC
About the MSVC compiler... it generates slower machinecode than g++ and a thing I recently noticed, it doesn't quite respect the c++ standard ( thing I noticed is that exception specifications are not treated by the compiler, even if you have a throw() function that DOES throw, unexpected() is never called )
The only bright side of "Visual C++" is the Visual Studio IDE, that from my point of view is kind of the best ide right now.
If you do want to do GUI developement in C++ I would suggest using portable libraries: Qt4 or GTK++ .
About .NET's C++/CLI... This is simply not C++. It's simply another language. If you do want to develop .NET apps I would suggest learning C#.