我有一个简单的问题,
我搜索 Windows 窗口管理器的确切名称。
对于 Unix:X 窗口系统
Mac : 石英
窗户:?
谢谢。
在链接文章的意义上,Windows 没有独立的窗口管理器。窗口系统负责绘制窗口,而“外壳”——通常是资源管理器——负责在桌面上显示任务栏和任何图标。
然而,窗口管理器的出现是 Microsoft Windows 中的一个新兴属性:所有窗口都有一个处理消息的 WindowProc - 并且所有未被应用程序代码处理的消息都必须传递给一个名为 DefWindowProc 的函数。DefWindowProc 处理窗口非客户区的点击,以执行窗口管理器的典型任务——调整大小、移动、最大化等等。
因为所有窗口的 WindowProc 都可以选择如何处理消息,所以它们可以通过自己处理消息而不调用 DefWindowProc 来选择不实现典型的窗口管理器行为。
任务栏 - 由资源管理器提供 - 提供操作窗口的按钮,但最终(a)它只是一个常规窗口本身,并且(b)它向窗口发送消息以使它们自己最大化,最小化,恢复等,所以再次,任何特定窗口都可以选择不像其他窗口那样工作。
DefWindowProc 是在 user32.dll 中实现的——所以这就是窗口管理器。
它有一个非常原始的名字——它叫做“桌面窗口管理器”。您可以看到他们对如何完全正确地进行了长期而艰苦的思考。
(这显然与微软营销部门毫无关系,否则它会被称为疯狂和无关的东西,比如 silverstuff 或 aero。)
它被称为“Windows 资源管理器”
在屏幕上绘制线条和像素的东西传统上是 GDI (gdi32.dll),或者现在是 WDDM(用于 Win7) - Windows 显示驱动程序模型,在此之上还有另一个层,DWM - 桌面窗口管理器.
最重要的是,您拥有 Aero,然后是显示和操作窗口的 Windows 资源管理器。
哦,是的,我几乎忘记了 Direct2D,它是另一个适合在某处的渲染层。我想他们有一天会想出最终的技术,这将成为未来 25 年图形和窗口的基础。