cbClsExtra; windows程序会为每一个类管理一个内部数据结构。类附加内存,通常情况下设为零.(=0)类额外的一个数据。(附加字节数)
WNDCLASS 的 cbClsExtra 和 cbWndExtra
应该是分别规定类的额外需要保存的空间的大小值,就好像你设计了一个窗口类,然后定义了一个窗口类的基本特征以后,你还需要将你这个类进行某种个性化,比如说你想用一个BOOL标记这种类的对象窗口是否带背景音乐功能,你cbClsExtra的大小应该设置为sizeof(bool),然后你的窗口,也可以指定其有一个保留内存大小,比如说你想通过一个字符串来指定背景音乐的路径,这时你的cbWndExtra的值可以设置为一定大小,你的音乐字符串大小不能超过此值。
你看SIZEOF()这个值当然应该是相同的了,这个SIZEOF的结果是cbWndExtra与cbClsExtra的数据类型的大小
不设置应该可以的
HICON hIcon; 图标的句柄。用LoadIcon这个函数来赋值 hIcon=LoadIcon(……)
HCURSOR hCursor; 光标句柄。用LoadCursor这个函数来赋值hCursor=LoadCursor(……)
char *cName = "myWindow"; //字符串
WNDCLASSEX wc; //WNDCLASSEX是窗口属性的结构体
HWND hWnd; //窗口句柄
MSG Msg; // 消息结构体
wc.cbClsExtra = 0; // 同窗口类相关的额外空间
wc.cbWndExtra = 0; // 同窗口相关的额外空间
wc.cbSize = sizeof(WNDCLASSEX);
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);// 背景画刷
wc.hCursor = NULL;// 鼠标样式
wc.hIcon = NULL;//窗口的图标
wc.hIconSm = NULL;//窗口的小图标
wc.hInstance = hInstance;//当前程序的句柄
wc.lpfnWndProc = WinProc;//窗口处理过程的回调函数。
wc.lpszClassName =(LPSTR)cName;//窗口类的名字。
wc.lpszMenuName = NULL; //不是"目录名",是菜单名
wc.style = CS_HREDRAW | CS_VREDRAW; // 窗口类的风格
cb:count bytes
字节数的意思。cbClsExtra 单位是byte,返回是int ,因此缩写最前面就是字节总数cb。
hIcon,hCursor 可以为NULL