I haven’t really messed with low level win32 API’s things like that in windows for an extremely long time.
Many years ago, at a previous job - I took some in-house tools that were originally C++ based windows-only MFC applications and ported them to wxWidgets (still in C++), to allow them to be built and ran on multiple OSes.
That was relatively trivial!
If you’re trying to port an old windows application to work on Linux, rather than trying to find things that are directly equivalent to the old win32 API’s - you may want to consider using a cross-platform application framework like QT, or wxWidgets to re-implement the GUI for the application. That way you can avoid the need for low level, platform-specific window management code. Let the framework automatically take care of all of that stuff for you!
That will avoid the need for too much platform specific code in your codebase. Then you can build and run your application in windows, Linux and any other supported platforms from the one codebase.