参数一、UINT style:cs:“类风格”标识符
/*
* Class styles
*/
#define CS_VREDRAW 0x0001 //垂直方向改变后刷新窗口
#define CS_HREDRAW 0x0002 //水平方向改变后刷新窗口
#define CS_DBLCLKS 0x0008 //当指针在属于此类的窗体内部,并且用户双击鼠标时,将会发送一个双击消息到窗体程序。
#define CS_OWNDC 0x0020 //为此类中的每一个窗体分配唯一的设备环境。
#define CS_CLASSDC 0x0040 //分配一个设备环境并被类中的所有窗体共享。由于窗体类被处理特化,它是可以适用于一个应用程序的若干线程创建 一个相同类的窗体。它同样适用于多个线程试图同时使用相同的设备环境。当此种情况发生时,系统只允许一个线程去成功的它的绘 图操作。
#define CS_PARENTDC 0x0080 //设置子窗体中剪下的矩形到父窗体中,以使子窗全可以在父窗体上绘图。一个具有CS_PARENTDC属性 控制的窗体从设备环境的系统缓存中接收到一个规则的设备环境。它不把父窗体的设备环境或设备环境设置给予子窗体。指定 CS_PARENTDC以提高应用程序的性能。
#define CS_NOCLOSE 0x0200 //关闭按扭不可用。
#define CS_SAVEBITS 0x0800 //保存被此类的一个窗体摭住的屏幕图象的一部分为位图。当窗体被移动,系统使用保存过的位图去恢复屏幕图 象,包括其它被摭住的窗体。因此如果被位图使用内存没有被释放,并且其它的屏幕动作没有使储存的图像无效。系统不会发送WM_PAINT 消息到被摭盖的窗体。这种类型对在其它屏幕动作发生时被暂时显示小窗体(如菜单或对话框)很有用。这种类型增加了显示窗体所 需的时间,因为系统必须先分配内存去存储位图。
#define CS_BYTEALIGNCLIENT 0x1000 //在字节边界(在X方向)上对齐窗体的客户区。此类型将影响到在窗体显示时它的宽度和它的水平 位置。
#define CS_BYTEALIGNWINDOW 0x2000 // 在字节边界(在X方向)上对齐窗体。此类型将影响到在窗体显示时它的宽度和它的水平位置。
#define CS_GLOBALCLASS 0x4000 //指定此窗体类是一个应用程序全局类。应用程序全局类是由一个在进程中对所有模块有效的exe或 ddl注册的一个窗体类。
#define CS_IME 0x00010000
// end_r_winuser
#endif /* !NOWINSTYLES */
参数二、WNDPROC lpfnWndProc:是所有基于这个类来创建的窗口所使用的窗口过程的地址(指向函数的指针)
参数三 和 参数四
int cbClsExtra;
int cbWndExtra;
这两个参数一般为0,是用于在类结构和Windows内部保存的窗口结构中预留一些额外空间
参数五
HINSTANCE hInstance:程序的实例句柄,在int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)中作为参数传递过来的
参数六
HICON hIcon:为所有基于这个窗口类建立的窗口设置一个图标:一般默认的设置为: wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; (函数返回图标的句柄)其中的第一个参数为程序的实例句柄(对于要获取预先定义的图标句柄,可以将第一个参数设置为NULL),第二个参数标识图标,对于预先定义的图标,此参数是以IDI开始的标识符,在WINUSER.H中定义,IDI_APPLICATION是一个简单的窗口小图形。
参数七
HCURSOR hCursor:为窗口类建立的窗口设置一个鼠标光标,当鼠标在客户区域上时,鼠标将变成所设置的形状! wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;这个函数同上hIcon的函数!
参数八
HBRUSH hbrBackground:指定基于这个类创建的窗口背景颜色,其中的hbr表示"handle to a brush"刷子句柄。windows有几个标准刷子,也称为“备用刷子”,如 wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) GetStockObject调用将返回一个白色刷子的句柄。(貌似(HBRUSH不用加的))
参数九
LPCWSTR lpszMenuName:指定窗口类菜单,如没有则为 wndclass.lpszMenuName = NULL ;
参数十
LPCWSTR lpszClassName:给出一个类名,对于小程序,类名可以与程序名相同