在WinUser.h中查到有如下种窗口风格:
通过spy++观察发现:
1、WS_OVERLAPPED, WS_POPUP, WS_CHILD是一组的,它们之间为互斥的,WS_OVERLAPPED为默认选项,如果同一组内的其他两个没有被选择,则包含此风格。不难理解,值为0X00000000L的风格(比如扩展风格中的WS_EX_LEFT)必然是与其他风格同组,并且是组内默认风格。
2、当包含WS_OVERLAPPED风格时,WS_CLIPSIBLINGS和WS_CAPTION必被包含(无论如何都去不掉,属于固定组合)。类似的情况也发生在WS_POPUP风格上,WS_CLIPSIBLINGS必然被包含。包含WS_DLGFRAME或者WS_THICKFRAME风格的窗口也必然包含WS_EX_WINDOWEDGE扩展风格。
3、WS_CAPTION是WS_BORDER和WS_DLGFRAME的组合。但是视觉上并不是这两个风格的累加,WS_BORDER产生平面线条边框,WS_DLGFRAME产生三维边框,而当它们组合时却神奇的产生了蓝色标题栏。
4、有些风格是依赖其他风格的,如WS_SYSMENU依赖WS_CAPTION风格,而WS_MINIMIZEBOX是依赖WS_SYSMENU风格的。
5、WS_MINIMIZE风格的窗口总是在其父窗口(把桌面看成是WS_OVERLAPPED或者WS_POPUP窗口的父窗口)的客户区左下角显示一个标题栏。
6、WS_GROUP和WS_TAPSTOP只在对话框或者具有类似对话框管理器功能的普通窗口中有效。

1435

被折叠的 条评论
为什么被折叠?



