Windows窗体  这个API因为在不同的系统中，是不一样的，所以上层软件基本都对这里进行了封装。 一方面是为了统一api，另一方面是更易用。

窗口的api 被封装之后，有些操作还是通过原生api 实现的。 这些被代码藏在了user32.dll 中。

因为C# 的封装很成熟，所以对于其它语言中，看起来很麻烦的操作，对于C# 而言实现起来非常简单。

又因为 逻辑树和UI树，基本上在Html 上已经被验证了，非常成功，所以理解和使用都非常方便。

但是这个逻辑在原生C++ 中，或者是在其他的语言中，其实是有些麻烦的。

常见的窗口的逻辑，如自绘窗口，虽然说是自绘iu，但实际上实现逻辑是隐藏了标题栏，然后自己重新实现了一个标题栏。

还有就是透明窗体，以及高斯模糊（很好看，但是除了微软自己的软件，如菜单使用了之外，用处不大），这个逻辑在win11 中被修改了。



UI线程独占是一个很有趣的事情，因为直接用C++ 实现，其实并没有这些事情，但是多线程在更新的时候，容易锁出现问题。

当然也可以一个线程一个UI 。 比如在OpenGL 实现的效果就是这样的。