views:

90

answers:

2

Hi all! As you know, many programs are written in C++. Some of these have fancy GUI with non-classical-Windows style ( think to Photoshop, 3ds max, maya etc )..now my question is: how are they done? In pure Win32 API? MFC? DirectX/OpenGL? or other? I can reach similar results with C#/WPF but how can I do it in C++?

Thank you in advance for the answers!

( Obviously I'm not asking for a full code, just some inputs :) )

+2  A: 

Read Programming Windows by Petzold

In my experience, it seems to be the most practical way to learn Win32 programming.

If you care about cool effects, Petzold can definitely help you. After you're somewhat familiar with win32, you can skip to the chapter in Petzold to bitblt'ng and doing animation. I had to do some fancy animated graphs in a win32 app once, and I pretty much used Petzold (and some MSDN) as my primary reference.

Doug T.
+1 - Petzold is **The One** for Windows.
Aviral Dasgupta
are yo asking him to read the entire book just to get some info on how interfaces in c++ are built...agh....
vehomzzz
Qt is "cute" too... especially, when you want things simple and "just want to easily skin things". In Qt, you use stylesheets (like CSS) to do this...!
Aviral Dasgupta
Sorry, I don't see how that answers the question. He is asking specifically about how fancy effects are created. He isn't asking how he can learn windows programming.
Simon P Stevens
well read the 1/4 or so of the book, treat the last 3/4 of the book is pretty much (a very essential) reference. Its how I learned, I can't think of a book that better crystalizes such a complex topic.
Doug T.
@Simon. You need a pretty severe grasp of fundamental win32 programming to get to the fancy effects stage, then you can move on to.... drumroll... more "Programming Windows" by Petzold!
Doug T.
uhm Win32 API renders the controls using GDI/GDI+ right?but if I use the API's functions in Windows Vista/7 ( I'm currently on 7 ), will the rendering automatically be handled by the DWM/WDDM?
Salv0
+2  A: 

It really depends on the application and the team that made it. So the answer is all of the above. If you see them doing something that looks off-beat and it looks the same on both windows and mac (assuming its cross platform) they have probably built their own GUI engine. Doing that lets them do custom things to suit their product.

resolveaswontfix