Application programming interface - Wikipedia, the free encyclopedia
And for cross-platform (linux, windows, osx, etc.) that will be a whole different discussion and that is definatly troublesome if you have no knowledge about GUI design and the platform SDK's for Windows and XWindows.
Then you should start with a GUI toolkit, just to get some basics (FLTK or wxWidgets is good)