Как разработать GUI на C++?
На голом WinAPI рисовать свои контролы для красивого интерфейса - та еще проблема. Придется писать ООЧЕНЬ много кода. Из минимальных прослоек к WinAPI можно использовать WTL и MFC. 
Для MFC есть ряд платных библиотек, упрощающий разработку UI и уже имеющие набор сильно кастомизированных контролов. Это, например, Codejock и BCGSoft.
Если все таки отказаться от низкоуровневого использования WinAPI  то нестандартный пользовательский интерфейс можно реализовать с помощью WPF (на .NET),  Sciter (UI движок, использующий HTML/CSS для отображения. Написан на с++, легко интерируется с С++, кроссплатформенный, бесплатный при использовании бинарников), QT(c++, есть язык разметки интерфейса QML).
Да, кстати, использование DirectX, OpenGL отношения к WinAPI не имеет.
В какую строну мне идти?
По-правильному, нужно идти в сторону адекватных "хотелок", GUI на "голом" WinAPI - это изначально было неактуально, поскольку был Borland, а сейчас, да еще и красивый, это вообще абсурд.
Как минимум, нужно писать свой фреймворк, чтобы в следующий раз было легче и код имел архитектуру, а не делать на WinAPI непосредственно, но создание фреймворка тоже много усилий потребует, а применений ему очень мало, почти уверен, что у вас их вообще нет, просто каприз.
Ну, а по теме, GDI+ используйте, можно сделать красиво как на WPF, но без аппаратного ускорения, но DirectX и OpenGL для GUI вы просто не осилите, уж совсем много придется сделать.