tags:

views:

125

answers:

3

Now I code win32 api windows explorer . But it seems quite hard to me.I've a month to do it. But through the time I code, I wonder is it worth that I code win32 api ? . When we can create GUI easily with MFC or even easier with C#.

What should I do ?

1- Keep coding with win32 api to deeply understand about them.

2- Just learn and code some programs to understand how they work.

Can you determine how many time does it take in each choice ( or how many projects ).

Thx for reading, as a 2nd student of IT University I really want your advice in this. My purpose is becoming a good and effective programmer :)

PS: recommended books are really appreciated.

+3  A: 

Move forward to WPF, C# - seriously the time of the WinAPI for high level stuff is over. ESPECIALLY the WinAPI (DIrectX etc. stay around a lot longer) where most things are not extremely time / memory sensitive to start with. You will be surprised how easy great forms are in XAML / WPF - that is, if you have a hand for graphics at all ;)

TomTom
I really see the lastest MFC support by MS, They've included explorer tree view / list view in it . C# and .Net are stronger. Thanks for your advice. I'll take my time to focus the latest tech instead of spending too much time on Win32 API.
nXqd
+4  A: 

If it is purely from learning perspective, then I will say, Do it. However, had it been for a business application, I would have said, Go with the latest technologies.

Since you are in learning phase right now, therefore, a deep understanding of Win32 API will help you in the long run albeit it may seem hard to grasp right now. I went through a similar path myself and I find myself better equipped with the underlying knowledge of things.

Aamir
It's really nice to see a sample like you. I'll move to the latest tech like C# after I've a good perspective in Win32 API .Thanks your advice. I help me drawing my way :)
nXqd
+1. I had a similar path myself and for sure, it helps.
ereOn
+1  A: 
  1. If you are serious about wanting to learn how programs work, go with Windows API.
  2. MFC is little more than a thin wrapper around windows. CDC wraps an HDC, CWnd wraps a HWND etc. You havn't gained much by using it.
  3. If you want to write flashy GUIs, go with WPF in a .NET language. For better or worse Microsoft is uninterested in upgrading the win32 api's GUI capabilities - Windows Dialog Boxes allow windows to handle tabbing between controls, and automatic scaling of GUI's to compensate for Font and DPI settings. WPF on the otherhand is where MS has added support for animation effects on controls, ribbon bars and so on.

They have built a "modern" GUI control set for win32 api apps like their logon dialogs and explorer windows. Its called DirectUI, but they're not sharing. For us, its .NET, a 3rd party gui library, or bust if we want pretty things for Win32 api apps :/ (Well, we could spend time writing our OWN "flash" GUI framework with effects, but that seems like a waste of time to me).

Chris Becke
It's really nice to know that MS has DirectUI. I feel design GUI which is wasting our time too. I'll spend a little of my time playing around with API first then I'll go C# . Thanks for your advice :)
nXqd