这个函数是系统默认的消息处理函数,也就是说,窗口程序的消息处理函数处理的只是我们感兴趣的消息,即上面的case语句,对于其他的消息还是使用系统默认的消息处理函数。消息处理函数是要在窗口主程序中登记的,登记为自定义的消息处理函数之后,系统的消息就由它来处理了。所以,在本函数的最后要使用该默认函数,否则其他的消息本程序就无法处理了。
比如一般在WM PAINT中处理绘图, 当关闭一个程序时,系统通常会发送一个WM DESTROY消息给应用程序。
1.2 C++面向对象设计语言简介
C++就是使用面向对象(Object-Oriented,OO)思想提升了的C语言(尽管许多人都认为C++和C语言是两门不同的语言,但我仍然趋向于认为C++是C语言的扩展和升级),主要在以下几个方面进行了升级:
类的封装。
继承。
多态。
类是将数据和函数组合起来的一种方式。通常,使用C语言编程时,用数据结构来存储结构,用函数来处理这些数据,然而,使用C++时,数据和处理数据的函数都封装在一个类中,这样做的好处是什么呢?这样可以将封装好的类看成有属性且具有某种行为的对象。这是一种更抽象更贴近实际情况的思考方式。
C++的另一项特性是继承。创建类后,便可以指定类对象之间的关系,在一个类的基础上派生出另一个类。现实世界本来就是这样的,例如有一种名为Student的类,它具有一些内部属性和特定的行为,如名字、性别等都可以成为它的属性;它可以具有一些行为(如去参加考试等)。但在这里,Student是一个通用概念,比如小学生和大学生的行为显然是不一样的,而且小学生和大学生都具有他们特定的属性(比如小学生具有过儿童节的特权,大学生就没有这个权利了。)这时,就需要从Student类派生出两种新类,分别为LStudent(小学生)和HStudent(大学生)。
图1.1描述了Student、LStudent和HSmdem之间的关系。明白这两个新类是如何从Student类派生出来的吗?LStudent和HStudent拥有Student所拥有的所有属性、方法和行为,但它们又具有自身特有的属性和方法。这就是继承的基本概念:可以在已有类的基础上创建出更复杂的类。另外,还有多重继承,它让你能够以多个类为基础,创建出新的类。
C++和面向对象编程最重要的一点是多态(Polymorphism),其含义是“多种形式”。在C++语境下,多态指的是根据不同的环境,函数和运算符有不同的功能。例如,在C语言中,表达式a+b表示将a和b相加,在这里a和b必须是内置类型变量,如int、float、char、short等。也就是在C语言中,不能定义一个新类型,然后将这种类型的变量a和b相加。然而在C++中,完全可以重载+、-、*、/等运算符,根据数据的类型执行不同的运算。
展开