Good Book for VC++ For Windows Development

I'm really proficient at C++ console apps, classes etc.. I'd like to port my functions and classes over to Windows form applications.

Any recommendations on MFC or .NET (I know quite a bit about VB.NET)

Any good next reads (books or tutorials) that avoid the basic fundamentals and dive into the differences between MFC and .NET (For instance I know some of the syntax changes for CLI and that baffles me...)

Thanks in advance for any recommendations!
I liked programming in c++ 2005 by ivor horton
Petzold does not say anything about MFC or .NET in his book, as @OP wants.
Besides, Petzold's book is in C, not C++.
Best MFC book I ever found was Jeff Prosise's (1st Edition). Hang on...

Here are some words:

"...I found the best MFC book I ever read really didn't care much about what compiler or dev environemnt you were using - it was the first edition (the second edition wasn't bad, but was not as good as the first) of Jeff Prosise's "Programming Windows 95 With MFC". Yes, it's now 15 17 years old. It says "Windows 95" in the title, but that's really just because Windows 95 was all big and happening then. It's agnostic to which version of Windows you're using, and doesn't actually care what your development system is (although if you've got the MFC dev libraries, you've got Visual Studio, so you might as well use it) so long as you can link to the libraries. The pictures in the book clearly use some version of Visual Studio, but every line in each program is typed in by hand with a clear explanation of what the code actually does, so there's no reliance on anything other than your ability to type."

and more other words:

"MFC has been around for a long time, though. You can buy a genuine copy of Visual Studio from yesteryear on eBay (anything after VS6 will probably do) for a pittance and get started with that. I bought a copy of VS2003 for just this purpose a couple of years ago; it cost less to buy than to have it posted to me. I wouldn't be surprised if it was quite easy to install it and then just use the MFC headers and link to the relevant libraries from whatever more recent IDE you like to use.

I learnt MFC from Jeff Prosise's excellent, excellent book "Programming Windows 95 with MFC". For getting a solid understanding of what you're doing it's second to none, as that edition doesn't bother with the wizards and starts you off making really minimal but fully functional MFC programmes, such that you know what every line of code there does. I had a disagreement with someone once who thought I was wasting my time and that rapid-prototyping with wizards and what have you was the way to go. I'm sure there's a place for that, but it's not how I like to learn and understand code. Also, my programming day job tends to have projects that run over the best part of a decade, so saving a fortnight to get a rapid-prototype pales in comparison to the cost of ten years of not really understanding how it works; other people have different needs, of course, and you have to go with what best suits your circumstances.

There is a second edition, "Programming Windows with MFC" which is a bit thicker and uses wizards, but to my mind it's actually not as good. Becuase MFC is quite mature, the basics in his first edition hold true now; development over the years since then has added lots that is useful, but the basics of putting it together as he explains are still valid. If you're just wanting to learn it, you probably won't even be interested in some of the really fancy bits for quite a while anyway.

Best bit; you can buy a second-hand copy of "Programming Windows 95 with MFC" online for literally pennies. I paid less than a pound for my copy. It cost more to post it to me. For the cost of a fiver's worth of postage, I had excellent book and a copy of VS2003 ready to go. Having had a quick look on eBay, I see a copy of VS2005 currently at two pounds. Bargain, and perfectly adequate for learning.

This is also really worth a read: http://www.microsoft.com/msj/0795/dilascia/dilascia.aspx


Even if you don't understand it yet, read what you can and come back to it every so often. It's really helpful for understanding the message pump, and if you understand the message pump you're half-way there.

Disclaimer: I am not Jeff Prosise, nor am I his agent :p "
I have a full version of VS2005 Pro that I paid for and use. I've downloaded the free version of VS2008 / 2010 but the intellisense for C++ sucks in those. So I'm good to go from and IDE standpoint.

Here is my real challenge in what to read next... C++ programing for windows forms branches out into MFC(old but solid), ATL (Seems more DB/Web oriented) and CLR/CLI which is a 'managed' version of C++ to support the JIT compiler. The syntax is a bit of a shock from my current C++ knowledge and I'm not sure if I want to invest in that route.

I'm good at VB.net (2005+) but want the power to make controls, objects and thought C++ would be the best rout. So being that I know C++ at a intermediate level and VB.net.

Where do I go with C++ to support windows development or for that should I just go to C#... This is where I hate MS.... just too many options and you never know what is going to be supported. Look at J# that shipped with my VS2005, no where to be found in 2008+...

Again any help or references would be greatly appreciated and I don't need to go back to 95 knowledge base MFC unless as you say it's a really good introduction and it's 90%+ valid in today's programing environment. I want my applications to work on Windows 7/8 and take advantage of the security and OS features but also be portable from a functionality standpoint.
I'd skip the MFC and ATL and all the rest of the MS specific stuff and just go straight to a third-party widget toolkit.

http://en.wikipedia.org/wiki/List_of_widget_toolkits#Cross-platform
Please note that for specific tasks you still need to use Microsoft specific features.
Topic archived. No new replies allowed.