cbClsExtra和cbWndExtra主要区别:
1,两者都是附加额外空间。
2,cbClsExtra是对类的(这里所说的类不是C++中的类,而是WNDCLASS结构的变量用RegisterClass注册后,在系统中记录的一组信息,是窗口的一个模板),用该类生成的所有窗口共享该附加空间。类似于C++类中的static变量。
3,cbWndExtra是对窗口的,每实例化一个窗口都有这么一个附加空间。类似于C++类中的成员变量。
对cbClsExtra和cbWndExtra的区别,比较容易理解。
但是如何访问和设置这些附加空间呢,看了不少帖子,论坛上也有很多人提问,但都只说了 区别,没说怎么用,好不容易找到个怎么用的,却是不是这两属性的用法:
http://blog.csdn.net/wangyaohui8888/article/details/6466557
http://bbs.csdn.net/topics/250039423
大家对这些附加空间的使用存在的误区:
1,使用GetClassLong(hwnd,GCL_CBCLSEXTRA)获取类附加空间存储的数据。原因:GetClassLong(hwnd,GCL_CBCLSEXTRA)获取的是类附加空间的大小,即cbClsExtra的值。
2,使用GetClassLong(hw