Creating GUI **Without** Using Microsoft API
I have looked on Google for quite some time for the answer, but have found nothing relevant.
Any help on finding this information would be greatly appreciated - thanks.
Have a look at QT, which should be open source or wxWidgets these are multiplatform libraries written by third party people. With any application however at some point your are going to have to talk to the underlying OS or runtime (I am excluding most embeded systems here) for displaying things or talking to disc or other things the OS deals with.
Which programming laguage(s) are you using?
How heavy-duty will this GUI be? Will it just be some forms, lists, buttons or do you need to implement your own specific controls?
Qt is good choice. I personally prefer Gtk+. WxWidgets is also free cross-platform widget set.
I think you need to clarify your requirements a bit more.
If you're looking for a portable cross-platform way to create a GUI so that you can build and run your application on diverse targets, there are many third-party libraries and frameworks that suit that bill and they're easy to find with a simple Google search.
If you're concerned about the distribution license conditions of code you need to include to use the library or framework, you would have to consult the licensing of the individual product. It sounds like you might want to look for BSD or LGPL licenses. There are many third-party libraries and frameworks that suit that bill and they're easy to find with a simple Google search.You need to understand the license of any code you use and distribute. Always.
If you're concerned about copyright of your code, it's a complicated issue but in most of the world you have no choice, if you write it you have the copyright and if you didn't write it the copyright belongs to the author and you use the code under license. You need to understand the license of any code you use and distribute. Always.
It isn't really possible to write runnable software that does not use code from the underlying operating system (except for some embedded devices where you're on the bare metal -- generally beyond the scope of these forums -- and even those usually link in runtimes). You just need to understand the technical and legal issues involved and work with them. Always.
So, what exactly were you looking for?
I also suggest Qt, with is under LGPL (so it can be used for free, even commercially). It's C++, cross-platform (Windows, Mac, Linux - not yet on Android or iPhone but it's being worked on by the community), uses native widgets (meaning on Windows it looks like a native Windows app, on Mac OSX it looks like a native Mac OSX app, and so on), and can be styled very easily to customize the appearance using a CSS-like language. It has superb documentation, and multiple active and helpful communities around it.
If you go the Qt route, I suggest using the QtCreator IDE. It's very good IDE, and has a great wizarding system for application creation (but you aren't required to use it).
I agree with Bregma that the OP needs to be clearer. You can't write a program for Windows that does " *NOT* use anything tied to Microsoft" ... Meaning, even if you develop to Qt using Qt Creator etc. if you build for windows when you run the windows executable CreateWindow(...) is going to get called somewhere, just not by your code.
Totally true. Even if you had zero GUI, and were using pure vanilla standard C++, compiled with a non-Microsoft compiler, your program would still (in most cases) be using Microsoft's C++ runtime.
Even MinGW uses Microsoft's C++ runtime.
"It's mainly an issue of copyright and compatibility problems."
Microsoft doesn't own your code if you use Win32 - what copyright issues are you referring to?
For compatibility issues, or more specifically, for cross-platform code, I recommend Qt. If you're not talking about cross-platform compatibility, then I agree with the others that more clarity is needed for your question to be answered.
Another pertinent question is are you using any libraries such as Allegro, SFML or SDL as there are GUI addons for those as well that might be easier to integrate with your projects than QT, etc.