在说明窗口销毁的过程之前要必要先弄清楚窗口类、窗口对象、窗口的概念以及它们的区别和联系。
窗口
即我们在电脑桌面上看到的应用程序界面,系统为每一个窗口维护了一个WNDCLASS结构体用来描述这个窗口的各种属性(如窗口风格、图标、画刷、菜单和窗口过程等)。系统还会为这个窗口保存它的位置、大小状态以及窗口所属的进程。如果你想查询和操作这些属性,你无法直接操作他们,因为你不知道他们的地址。它们是系统负责维护的。但是系统提供和很多函数让你去操作它们。系统为每个窗口都维护了这些数据结构,你必须指明你要操作哪个窗口。所以窗口句柄呼之欲出了,窗口句柄就是用来标识一个窗口的(以及系统为这个窗口维护的数据结构)。所以Windwos SDK中几乎每一个操作窗口的函数都需要窗口句柄作参数。窗口即是电脑桌面上的界面和系统为这个界面在背后维护的一系列结构体。
窗口类
Windows SDK中创建一个窗口的过程
说到窗口类,还得回顾一下我们在Windows SDK编程时创建一个窗口的过程。
- 设计窗口类(设置各种属性。注意这个窗口类只是一个结构体,不是我们要讨论的窗口类)