资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,网络安全概述,*,Visual C+6.0,如何用,Class Wizard,创建新类,10/1/2024,1,网络安全概述,10/1/2024,2,网络安全概述,App Wizard,10/1/2024,3,网络安全概述,App Wizard-Application Wizard,即“应用程序创建向导”。,10/1/2024,4,网络安全概述,App Wizard,用来创建基于,MFC,的,Windows,应用程序。它的功能非常强大,使用,App Wizard,可快速产生具有下面特征的应用程序:,单文档,多文档或基于对话框的应用程序。,OLE,支持和数据库(,ODBC,和,DAO,),支持。,工具条、状态条、上下文敏感帮助和三维界面。,文件的内部功能,如打开、打印命令等。,窗口边框风格的控制。,10/1/2024,5,网络安全概述,MFC AppWizard,显示一系列对话框,用户可从对话框中选择满足应用程序和新需要的选项。在定义完应用程序和项目选项后,,WFC AppWizard,生成创建应用程序所需要的开始文件,使这些文件与,Class Wizard,兼容。,10/1/2024,6,网络安全概述,Class Wizard,10/1/2024,7,网络安全概述,Class Wizard,是专门用来管理事件控制消息的工具,它提供了一种快捷的方式向工程中添加有关界面元素的消息处理代码,如果不增加这样的代码,编译后的应用程序就会根据缺省设置来响应消息事件,而这些缺省信息都隐藏在,MFC,之中,,Class Wizard,通过存取一个后缀为,CLW,的文件来保持与源代码的同步,随着版本的不断提高,,Visual C+6.0,的跟踪能力已达到相当高的程度,这样可减少过去手工添加例行的数据交换和数据有效化的代码,非常省事。,Class Wizard,简介,10/1/2024,8,网络安全概述,Class Wizard,的功能特点,10/1/2024,9,网络安全概述,创建新类:它是从处理,Windows,消息和记录集(,Recordest,),的主框架基类派生来的,映射信息给窗口、对话框、控件、菜单选项和加强键有关的函数。,创建新的消息处理函数。,删除消息处理函数。,10/1/2024,10,网络安全概述,查看已经拥有处理函数的消息并将它加到相应的处理代码中去。,定义成员变量用于自动初始化,收集并验证输入到对话框或表单视图中的数据。,创建新类时,添加自动化(,Automation,),方法和属性。,10/1/2024,11,网络安全概述,如何用,Class Wizard,创建新类?,10/1/2024,12,网络安全概述,使用,Class Wizard,,,可以添加无错的类声明到项目中。多数可用的,ClassWizard,创建的类都是从,CmdTarget,类派生的用户界面类。,10/1/2024,13,网络安全概述,利用,ClassWizard,创建新类的方法为:,从,View,菜单选择,ClassWizard,命令,弹出,MFC,ClassWizard,对话框。,单击“,Addclass,”,按钮,从弹出菜单中选择,New,命令。,选择后弹出,New Class,对话框,如下图所示,10/1/2024,14,网络安全概述,10/1/2024,15,网络安全概述,在,Name,文本框中输入新的类的名称,如“,NewOne,”,。,从“,Base Class”,下拉列表框选择用于派生新类的基类,如“,Cone”,。,若要改变头文件(,.h,),或者实现文件(,.,cpp,),的缺醒名字,请单击“,Change”,按钮,弹出“,Change Files”,对话框,在对应的文本框中输入相应的名字。更改后单击“,OK”,按钮返回。,从,Automation,框选择以下选项之一;,单击,OK,按钮,,ClassWizard,自动将该类的框架信息加到相应的头文件和实现文件中。,10/1/2024,16,网络安全概述,如果新创建的类实现,Active,控制功能,则可使用“,MFC Class Wizard”,对话框的,ActiveX Events,选项卡来添加,ActiveX,文件,这些文件在某一特定动作派生时被初始化。,10/1/2024,17,网络安全概述,创建一个基于对话框的通用类程序,在类 视图界面右击鼠标,new class,class type -Generic Class,name-,cRectangle,10/1/2024,18,网络安全概述,10/1/2024,19,网络安全概述,在,Name,文本框中输入新的类的名称,如“,cRectangle,”,。,若要改变头文件(,.h,)或者实现文件(,.,cpp,)的缺醒名字,请单击“,Change”,按钮,弹出“,Change Files”,对话框,在对应的文本框中输入相应的名字。更改后单击“,OK”,按钮返回。,单击,OK,按钮,,ClassWizard,自动将该类的框架信息加到相应的头文件和实现文件中。,10/1/2024,20,网络安全概述,class,cRectangle,private:,int,m_long,;,int,m_short,;,public:,cRectangle,();,virtual,cRectangle,();,;,运行,调试,正常、,10/1/2024,21,网络安全概述,class,cRectangle,private:,int,m_long,=10;,int,m_short,;,public:,cRectangle,();,virtual,cRectangle,();,;,运行,调试,有错误、因为类的私有速据不能赋值,10/1/2024,22,网络安全概述,10/1/2024,23,网络安全概述,定义消息处理函数,10/1/2024,24,网络安全概述,创造新类或从其他项目倒入类后,可用,ClassWizard,浏览有关的信息并快速定义相应的消息处理函数。,10/1/2024,25,网络安全概述,定义消息处理函数方法为:,从,View,菜单选择,ClassWizard,命令,弹出,MFC,ClassWizard,对话框。,切换到“,Message Maps”,选项卡。,从“,Class Name”,下拉列表框中选择要处理的类名。,在,Object IDS,框中选择要定义消息处理函数的用户界面对象。,在,Message,框中选择要定义消息处理函数的消息,然后单击“,Add Function”,按钮(或双击消息名),10/1/2024,26,网络安全概述,若消息没有预定义处理函数名,则弹出“,Add Member Function”,对话框,键入消息处理函数名并按回车,或直接按,OK,按钮以接受,ClassWizard,建议的名字。,如果要添加多个信息处理函数,则重复,5,,,6,两步的操作,图为添加多个消息处理的结果。,单击,OK,按钮,,Class Wizard,将往头文件中插入函数声明,往实现文件中插入完整正确的函数定义,并给出实现框架,更新的消息映射的包含新的消息处理函数。,10/1/2024,27,网络安全概述,10/1/2024,28,网络安全概述,10/1/2024,29,网络安全概述,10/1/2024,30,网络安全概述,#include,cRectangle.h,点“,.”,时,若不出现方法,数据,则进行调试,修正错误,10/1/2024,31,网络安全概述,cRectangle,类的私有数据,m_long,在类外不能访问,即赋值,10/1/2024,32,网络安全概述,class,cRectangle,int,m_long,;,int,m_short,;,public:,cRectangle,();,virtual,cRectangle,();,;,void,CMNewClassDlg:OnArea,(),/TODO:Add your control notification handler code here,UpdateData(true,);,cRectangle,Rect1,Rect2;,Rect1.m_long=10;,在默认的情况下,,cRectangle,类的数据是私有的,,m_long,在类外不能访问,即赋值,10/1/2024,33,网络安全概述,class,cRectangle,int,r_long,;,int,r_width,;,public:,cRectangle,();,setLong,(,int,out_long,),r_long,=,out_long,;,setWidth,(,int,out_width,),r_width,=,out_width,;,virtual,cRectangle,();,;,void,CMNewClassDlg:OnArea,(),/TODO:Add your control notification handler code here,UpdateData(true,);,cRectangle,Rect1,Rect2;,Rect1.setLong(m_long);,Rect1.setWidth(m_width);,可以通过类的成员函数来访问类的私有数据,,cRectangle,类的数据是私有的,可以通过,SetLong,函数访问之,即赋值,10/1/2024,34,网络安全概述,class,cRectangle,class,cRectangle,int,r_long,;,int,r_width,;,public:,cRectangle,();,setLong,(,int,out_long,),r_long,=,out_long,;,setWidth,(,int,out_width,),r_width,=,out_width,;,int,setArea,(),int,area;,area=,r_long,*,r_width,;,return(area);,virtual,cRectangle,();,;,完整程序,#include,cRectangle.h,void,CMNewClassDlg:OnArea,(),UpdateData(true,);,cRectangle,Rect1,Rect2;,Rect1.setLong(m_long);,Rect1.setWidth(m_width);,m_area,=Rect1.setArea();,UpdateData(false,);,10/1/2024,35,网络安全概述,面积,通过类的方式计算长方形面积,10/1/2024,36,网络安全概述,
展开阅读全文