Chr*_*cke 10
就链接文章而言,Windows没有离散的窗口管理器.窗口系统负责绘制窗口,"shell" - 通常是资源管理器 - 负责在桌面上显示任务栏和任何图标.
然而,窗口管理器的外观是Microsoft Windows中的一个新兴属性:所有窗口都有一个处理消息的WindowProc - 所有未由应用程序代码处理的消息必须传递给名为DefWindowProc的函数.DefWindowProc处理窗口的非客户区域中的点击,以执行窗口管理器的典型任务 - 调整大小,移动,最大化等等.
因为所有窗口的WindowProcs都可以选择如何处理消息,所以他们可以选择不通过自己处理消息而不调用DefWindowProc来实现典型的窗口管理器行为.
任务栏 - 由资源管理器提供 - 提供操作窗口的按钮,但最终(a)它本身只是一个常规窗口,(b)它向窗口发送消息以使它们自己最大化,最小化,恢复等,所以再次,任何特定的窗口都可以选择不像其他窗口一样.
DefWindowProc在user32.dll中实现 - 所以这就是窗口管理器.