第3章,[标签 Win32] :窗口类05,cbClsExtra 和 cbWndExtra 字段
专栏导航
上一篇:第3章,[标签 Win32] :窗口类04,窗口过程函数与消息机制
回到目录
下一篇:无
本节前言
对于本节所讲解的知识,有可能,你会需要时不时地参考本专栏之前的文章。真的遇到了需要参考之前的文章的知识点,请你自行查阅。
我呢,也会提到一部分的参考课节。但是呢,你不应该依赖于我的主动提及。最好呢,你自己能够多去了解和查看本专栏目录。
学习本节所讲的知识,需要你事先了解过本章的完整代码。完整的代码,请参考下述文章链接。
参考课节:第3章,[标签 Win32] :本章程序代码
在之前,我们有讲过窗口类的基本情况。
为了便于学习,我们还是再次贴出窗口类的各个成员变量,如下所示。
typedef struct {UINT style;WNDPROC lpfnWndProc;int cbClsExtra;int cbWndExtra;HINSTANCE hInstance;HICON hIcon;HCURSOR hCursor;HBRUSH hbrBackground;LPCTSTR lpszMenuName;LPCTSTR lpszClassName;
} WNDCLASS, * PWNDCLASS;
本节,我们的任务,是继续学习着窗口类的字段。
我们开始。
一. cbClsExtra 和 cbWndExtra 字段
本节,我们要去讲解的,便是这两个字段。
两个字段,都以 cb 作为前缀。cb 对应的英文是 count of byte,是字节数量的意思。
cbClsExtra,其中的 Cls 对应着 Class,意思是“类”。Extra 是 “额外的”的意思。综合起来,cbClsExtra 字段,它是用来给窗口类预留一定的字节数目的空间。
若是将 cbClsExtra 字段的值设置为 32,则是给当前所注册的这个窗口类预留 32 个字节的空间。
cbWndExtra,其中的 Wnd 对应着 Window,窗口的意思。综合起来,cbWndExtra 字段的作用,是给当前所注册的窗口类所创建所有窗口中,预留一定的字节数目的空间。
如果给 cbWndExtra 设置为 16,则是给所注册的窗口类所创建的窗口,预留出 16 个字节的空间。
注册了一个窗口类之后,可以用这个窗口类创建出许多的窗口。这个时候,cbClsExtra 字段用来给窗口类预留字节空间,而 cbWndExtra 用来给此窗口类所创建的每一个窗口预留字节空间。
一个是给窗口类预留空间,一个是给由窗口类生成的窗口预留空间。
这样子讲,我想,大家应该能大致区分了吧。
我们来看一看本章代码中,关于这两个字段的处理代码。

两个字段的预留空间都是 0,没有使用。
在本章中,我们没有使用这两个预留空间。以后呢,我们会有使用这两个字段的时候,也就是会有给窗口类或者是窗口预留字节空间的时候。
本节呢,我们就先讲这些。
专栏导航
上一篇:第3章,[标签 Win32] :窗口类04,窗口过程函数与消息机制
回到目录
下一篇:无