WNDCLASS中style字段的取值(wndclass.style的取值)

WNDCLASS 结构体的 style 字段用来指定所创建的窗口的风格,它的取值如下表(也可以是多个值的组合):
取值 说明
CS_BYTEALIGNCLIENT 窗口的客户区域以“字符边界”对齐,当系统调整窗口的水平位置时,客户区域的左边坐标是8的整数倍。
CS_BYTEALIGNWINDOW 窗口以“字符边界”对齐,当系统调整窗口的水平位置时,客户区域的左边坐标是8的整数倍。
CS_CLASSDC 分配一个设备环境并被类中的所有窗体共享。它是可以适用于一个应用程序的若干线程创建的一个相同类的窗体。当多个线程试图同时使用相同的设备环境时,系统只允许一个线程成功地进行绘图操作。
CS_DBLCLKS 当用户双击窗口时,将向窗口函数发送鼠标双击消息。
CS_GLOBALCLASS 指定此窗体类是一个应用程序全局类。应用程序全局类是由一个在进程中对所有模块有效的exe或dll注册的窗体类。
CS_HREDRAW 如果窗口的位置或宽度发生改变,将重绘窗口。
CS_NOCLOSE 窗口中的“关闭”按钮不可见。
CS_OWNDC 为同一个窗口类中的每个窗口创建一个唯一的设备上下文。
CS_PARENTDC 设置子窗口中剪下的矩形区域到父窗口中,以使子窗口可以在父窗口上绘图。指定该风格可以提高应用程序的性能。
CS_SAVEBITS 把被窗口遮掩的屏幕图像作为位图保存起来。当该窗口被移动时,Windows操作系统使用被保存的位图来重建屏幕图像。
CS_VREDRAW 如果窗口的位置或高度改变,将重绘窗口。

记住这么多取值简直是一个噩梦,一般窗口常用的取值为CS_HREDRAW | CS_VREDRAW,表示窗口位置或大小改变时发生重绘,产生WM_PAINT消息。

观察上表可以发现,WNDCLASS 结构体中的 style 字段的取值都是以CS开头的,CS 是Class Style的缩写,意思是窗口类风格。

窗口样式需要在两个地方指定,一个是本节讲的窗口类 WNDCLASS 的style 字段,另一个是 CreateWindow 函数的 dwStyle 参数,详情请查看《CreateWindow窗口风格取值》。