windows编程中,调用CreateWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth,int nHeight,HWND hWndParent, HMENU hMenu,HANDLE hlnstance,LPVOID lpParam)创建窗口,需要lpClassName,该参数指定的是一个已创建的类的类名,多个窗口可以通过调用该类来创建不同类型的窗口。结构体WNDCLASSEX既是包含了类的相关信息,如类名和回调函数等。我们可以在该结构体中指定结构体成员style的值来指定由该类创建的窗口的一些属性,属性值如下:
CS_BYTEALIGNCLIENT 指定窗口的客户区域距离边界距离(x轴),这个风格会影响窗口的宽度和水平位 置显示
CS_BYTEALIGNWINDOW 指定窗口距离边界的距离(x轴),这个风格会影响窗口的宽度和水平位置显示CS_CLASSDC 共享同一个窗口类的所有窗口也共享同一个设备环境,当多个线程使用该类创建 一个窗口时,仅仅只有一个窗口会成功完成
CS_DBLCLKS 当用户移动光标至该类创建的窗口的区域中双击时,发送双击消息给窗口程序
CS_DROPSHADOW 开启窗口阴影效果,可以通过SPI_SETDROPSHADOW来开启或关闭该属性。这 个属性对于小的,短暂的窗口都是有用的。通过具有该属性的类创建的窗口必须 是顶级窗口,不能是子窗口
CS_GLOBALCLASS 指明该类是全局的
CS_HREDRAW 如果窗口移动位置或客户区宽度变化,则重绘整个窗口
CS_NOCLOSE 禁止窗口按钮中的关闭按钮
CS_OWNDC 为每个共用该窗口类的不同窗口分配一个独立的设备环境
CS_PARENTDC 将子窗口的裁剪区域设置到父窗口的环境中去,这样子窗口便可以在父窗口上绘 制自身。注意,这是子窗口还是从系统缓存中获取DC,而不是使用父窗口的 DC。使用该风格可以提高系统性能
CS_SAVEBITS 以位图形式保存被该窗口遮挡的屏幕部分,这样当给窗口移动以后,系统便可以 用该保存的位图恢复屏幕移动的相应部分,从而系统不用向被该窗口遮挡的窗口 发送 WM_PAINT 消息。该特性对于菜单类型的窗口比较合适,因为它通常是简 短的显示一下之后便消失。设置该特性将增加显示该窗口的时间,因为它通常要 先分配保存位图的内存
CS_VREDRAW 如果窗口移动位置或客户区高度变化,则重绘整个窗口