Графическая оболочка

Достаточно сложно, если не использовать всякие плюхи, на подобии Qt, MFC и им подобные.
Нужно учить API конкретной ОС, для которой собираетесь писать приложение.

1