Ive just started going through and developing basic applications using the win32 API, and couple of times I have come across people mentioning that directly using win32 is not wise...I've just started using the library and personally think its nice and easy to use.

However Ive been seeing things like using QT or GTK(and many others) are better libraries for GUI applications, so I was wondering if me learning the win32 api is a waste of time and I should use some of the mentioned libraries for developing windows applications ???

The Win32 API is a C api, not C++, so in order to apply object-oriented methods to it, you have to wrap it inside of classes. Qt and GTK (Qt more so) are good if you want to develop applications that can run on Windows, Linux, Unix, etc without modification (mostly).

Disclaimer re. Qt - I am a Senior Systems Engineer for Nokia, who until recently (last month or so) was the owner of Qt.

so I was wondering if me learning the win32 api is a waste of time and I should use some of the mentioned libraries for developing windows applications ???

No and yes, respectively. While you should prefer higher level GUI libraries for various reasons, it's still a good idea to learn the Win32 API because it gives you that much more flexibility. For example, I use .NET primarily, but when the framework doesn't do what I need or does what I need but too slowly, knowing the Win32 API means I can drop down a level and get the job done.

This happens more often than you'd think for production software because .NET is notorious for being sluggish on the redraw, and perceived performance is very important.

This question has already been answered. Start a new discussion instead.