云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 列在类视图中的类

列在类视图中的类

  • 62 次阅读
  • 3 次下载
  • 2025/5/25 21:26:54

列在类视图中的类

(一)什么“类”需要列在类视图中

一个Windows应用程序是以WinMain函数为主线,在主函数运行过程中通过对类进行实例化,调用类中的成员函数完成对应用程序的控制、对资源的操作以及对消息的处理等,实现整个应用程序的功能。一个完整的应用程序包含许多类,必须将类实例化后才能引用其内部的成员函数。如果我们想让程序具有我们希望的自定义的功能,则必须由我们自己编写用以实现功能的函数,而在C++中函数是封装在类当中的,所以我们要将自定义的函数作为某个类的成员函数编写,也就是说要放到某个类当中,则用整个新的类所实例化的对象就具有了对应的功能。要实现自定义的功能主要包括两方面,一是更改应用程序相关属性,二是编写自定义的消息响应函数。如果只是更改属性(如更改文字颜色等)则可以用类所封装的成员函数通过传递参数改变类的对象中的数据成员的值,我们并不需要对类编写就能直接使某一对象的参数更改,所以这样的类无需列在类视图中(因为我们不需要对它进行更改)。但若要使某一对象具有某一额外的功能就必须要在定义该对象的类当中添加或修改函数了,这样的类就必须列在类视图当中,供我们添加或修改函数。因为Windows应用程序是基于消息的,所以我们要添加的函数都是消息响应函数,因此只要是能够接收消息的类都需要显示到类视图当中。因为这是在原有类的基础上(基类)添加消息响应函数,所以这个过程是在派生我们自己的类,因而在类视图中的类名显示的是派生类名,用派生的类实例化的对象就具有了我们想要的功能。

(二)什么资源需要派生类

当我们新建一个资源后,对资源的操作是调用类所实例化的对象中的成员函数实现的,而资源的句柄被作为数据成员保存在资源相关联的对象中。如果所添加的资源不能接收消息(如:位图、菜单、画笔等),则不会被列到类视图中;如果所添加的资源能够接收消息(如:对话框),则必须由与资源相关的基类派生一个自定义的类放到类视图中,以添加消息响应函数,响应接收到的消息。

因为即使是同类型的类(如都是对话框类),由于不同的对话框所执行的消息响应一般不同(即它们所具有的功能不同),所以每一个可捕获消息的窗口都需要为它单独创建一个类,以便在对应窗口所新建的类中添加不同的消息响应。所以由类向导所创建的类会自动与对应的资源(可捕获消息的窗口)相关联,在类的内部会有关联信息,并且会产生一个隐含的对象和this指针,一旦新建了这个类它就指定了为其所关联的资源服务。若要在其他的类中对新建的资源进行操作,则必须在该类中用与资源关联的类实例化对象,然后通过这个对象才能对资源进行操作,并且与资源关联的类在任何地方所创建的对象在不指定的情况下默认都是对其相关的资源服务的,因为在类的构造函数里已对对象进行了初始化让它与某一特定资源相关,除非手动更改。注意:新建的类在其它已有类中是无法识别的,所以在实例化对象时要在当前类中包含所新建类的头文件。

搜索更多关于: 列在类视图中的类 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

列在类视图中的类 (一)什么“类”需要列在类视图中 一个Windows应用程序是以WinMain函数为主线,在主函数运行过程中通过对类进行实例化,调用类中的成员函数完成对应用程序的控制、对资源的操作以及对消息的处理等,实现整个应用程序的功能。一个完整的应用程序包含许多类,必须将类实例化后才能引用其内部的成员函数。如果我们想让程序具有我们希望的自定义的功能,则必须由我们自己编写用以实现功能的函数,而在C++中函数是封装在类当中的,所以我们要将自定义的函数作为某个类的成员函数编写,也就是说要放到某个类当中,则用整个新的类所实例化的对象就具有了对应的功能。要实现自定义的功能主要包括两方面,一是更改应用程序相关属性,二是编写自定义的消息响应函数。如果只是更改属性(如更改文字颜色等)则可以用类所封装的成员函数通过传递参数改变类的对象中的数据成员的值,我们并不需要对类

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com