I can't comment on Visual C++ as a learning environment for C++, as it is quite different from the ones I learned on myself; it is a good development environment overall, if somewhat infuriating at times (which is true of any environment). I would definitely work exclusively on console applications at first, until I had the core language down solidly, before trying to write any Windows applications. I'd also suggest downloading some other free C++ compiler - the ones I know of offhand are
Borland C++ Builder,
LCC, and the various ports of gcc (
DJGPP,
Cygwin, and
DEV-C++) - and try compiling your console apps with them; this should give you some idea of how to tell generic C++ from the Visual C++ specific extensions, and familiarize you with different kinds of programming environments.
As for books, the best overall C++ books are
Thinking in C++ by Bruce Eckel and
C++: The Core Language by Satir and Brown. However, both assume a background in C, and both are rather heavy to digest for a beginning programmer. My advice is to browse through the online version of Eckel's book, and if it is too much, then finish a more basic text and come back to it later; and to pick up the O'Reilly & Assoc. book as a reference.
Lastly, while I probably sound like a broken record on this, I'd suggest that after you have a solid grasp of C++ (or earlier, if you don't think it would confuse you), you should pick up some assembly language, and learn about at at least two or three other languages as well. Different languages encourage different perspectives, and just as speaking more than one human language can help you better understand you native tongue, so too can a knowledge of different programming language make you a better programmer overall. See my postings in the
book thread (in the OS development board) for more details. Learning a bit of
compiler theory can help as well, as knowing how code is generated can give important insights into how software actually works - but I'm getting ahead of myself; that's a very advanced topic to keep in mind for study much later on. See my postings in the book thread for more details. These things are hardly mandatory - many coders never learn more than one language and environment - but it is strongly advised.