If you listed out all the requirements a modern UI framework needs you would find that the original Win32 UI API’s are not viable. Especially if you want to support more than just C and C++.
So much code is required to do things we now take for granted that the resulting patterns became new frameworks.