Hi, I want to learn mfc, but as I read in wiki mfc is not included in visual express editions, IS THE ONLY WAY TO LEARN MFC is buying visual studio software? are there any other solutions?

Yes, the only way to get it is through the full version of VS. The Win32 API is available on the Express Editions (along with .NET).

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

Thank you guys. I have jus bought that book for £2.38 :))

Ace. I'd be really interested to hear your opinion when you've gone through the first chapter or so; I found it really useful, but maybe that's just me, and I really do like that he hand-crafts rather than uses wizards, whereas some people take a more utilitarian view and don't feel the obsessive need to understand every line of code. Still, for two pounds and thirty eight pence it's a bargain even if it's not your style :)

Please come back and tell us how useful it is to you, so I can adjust my advice for anyone who comes along in the future with a similar question.