If you are serious about writing a cross-platform application then check out the Java SWT GUI toolkit (
http://www.eclipse.org/swt). I tried Win32 API programming and got frustrated really fast. So I switched to Java. First I tried using Java's Swing GUI library but the GUI widgets were sluggish compared to native Window's apps. Then I tried SWT and loved it.
Here were my reasons for using Java/SWT:
1. Java is a modern OO language with garbage collection (don't have to worry about memory allocation)
2. I could use the Eclipse IDE (
Eclipse.org home)
3. The SWT toolkit created apps with the same look and feel as native Windows apps.
4. My apps were portable (linux, Windows and MacOS)
5. I already knew C++ so learning Java was easy
6. all of the dev tools were free
Many people say that C#/.NET development is better than Java/SWT development for Windows GUI apps, but I wanted to write cross-platform apps.
just my 2 cents