专栏导航
上一篇:第3章,[标签 Win32] :HelloWin 程序中的四个结构体类型
下一篇:第3章,[标签 Win32] :创建窗口02,CreateWindow 函数的前 3 个参数
本节前言
对于本节所讲解的知识,有可能,你会需要时不时地参考本专栏之前的文章。真的遇到了需要参考之前的文章的知识点,请你自行查阅。
我呢,也会提到一部分的参考课节。但是呢,你不应该依赖于我的主动提及。最好呢,你自己能够多去了解和查看本专栏目录。
学习本节所讲的知识,需要你事先了解过本章的完整代码。完整的代码,请参考下述文章链接。
在之前,我们有讲解过窗口类的注册的知识。讲完了注册窗口类的模块以后,我们又讲解了一些个零散的东西。
从本节开始,我们来讲解创建窗口。
实际上,我们要去讲解的,仅仅是 HelloWin 程序中的一个函数而已,CreateWindow 。
为了讲解这个函数,我们又得是耗费一些个课节了。
我们开始吧。
一. 窗口类与窗口的关系
窗口类定义了窗口的一般特征。基于某一个窗口类,可以创建许多不同的窗口。所创建的每一个窗口,可以拥有不同的特性。
也就是说,窗口类定义了某一类窗口的共同特征。而在基于此窗口类所创建的窗口,它们可以沿用此窗口类的大多数的共性特征,而在某一个或某几个属性上,予以单独设置,以实现单独的某一个窗口的个性化。
之前,我们讲过,普通按钮,单选按钮,复选框等等的控件,它们都属于一种窗口,叫做子窗口控件。
以普通按钮为例,它的表面,可以写着【确定】,可以写着【下一步】,可以写着【设置】。都是普通按钮,但是呢,它们的表面文字可以有所不同。其实还可以有其它的不同属性设置。不过,对于按钮的属性,我们以后再来细讲。
此处,我们只要能够明白,可以基于同一个窗口类,创建出具体的面貌有所不同的个性化的窗口就可以了。
关于窗口类与具体窗口的关系,我像上面那样子说,大家应该是能够明白了吧。
在注册窗口类的时候,我们是通过定义窗口类 WNDCLASS 的一个变量 wndclass,设置 wndclass 结构体变量的各个成员变量,然后用这个 wndclass 来调用 RegisterClass 函数,这样,我们就注册了一个窗口类。
对于注册窗口类的代码,我们再次通过截图,来向大家指示一遍。请大家注意看下面的几个截图中的红色框线的部分。
通过图1 和图2 中的代码,我们成功地设置和注册了窗口类。
成功注册了窗口类以后,我们可以基于此窗口类,来创建一个窗口或多个窗口。
创建窗口的时候,我们需要函数。所使用的函数,为 CreateWindow 函数。
在 HelloWin 程序中,对 CreateWindow 函数的调用代码如下。
在本节中,我将 CreateWindow 称作是函数。但是呢,实际上,它并不是一个函数,只是一个别名而已。
CreateWindow 有两个版本,一个是 ASCII 版的 CreateWindowA,另一个是 UNICODE 版的 CreateWindowW 。当程序中定义了 UNICODE 标识符的时候,对 CreateWindow 的调用,实际上是在调用 CreateWindowW 函数。若程序中没有定义 UNICODE 标识符,则对 CreateWindow 的调用,实际上是在调用 CreateWindowW 函数。
对于创建窗口的知识,我们先讲到这里。
下一节,我们来具体地讲解 CreateWindow 函数的各个参数与返回值的含义。
结束语
我觉得,我写文章的节奏挺慢的。照这个速度,也不知道何时能够写完本专栏。
看情况了,说不定啥时候,我可以将写作速度给提升上来的。
4500

被折叠的 条评论
为什么被折叠?



