Ok in windows platform we use Win32 API (Application Programming Interface) and its the core for all GUI stuff in windows, also you could use Frameworks for this like MFC,wxWidgets,QT and etc.
If you are in windows platform then learn Win32 it is hard(not very much) but you will get to know a lot.
Good Luck
Yes its not necessary ,but on the core any windows GUI framework will use Win32 API.Other ways are to use Frameworks which is nothing more then wrapping win32 functions inside classes so we could do it in a OOP style for example MFC .And its not easy in Win32 ,we have to write more codes(a lot..) than any other framework.As its the core interface in windows platform , Win32 GUI programs are quite faster than any other GUI based framework under windows.Win32 API's (Application Program Interface) are not necessary for creating a GUI for a windows based PC, but it does make some stuff easy to accomplish without having to write too much code.....