ImageVerifierCode 换一换
格式:PPT , 页数:143 ,大小:2.57MB ,
资源ID:1068303      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-1068303.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《mfc应用开发技术》基于mfc的应用系统开发案例.ppt)为本站会员(无敌)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

《mfc应用开发技术》基于mfc的应用系统开发案例.ppt

1、1,MFC应用开发技术,基于MFC的应用系统开发案例,2,系统需求,实现一个基本的学生信息管理系统,3,一、项目内容,存储介质:.txt文件(学号唯一)类别 姓名 学号 年龄 系别 实验室 发表文章B 张山 B098 23电信学院M 测试 Y094 23电信学院lab3M 周正 Y093 23电信学院lab2D 王丹 0102 29电信学院LAB9 20,B 本科生M 硕士生D 博士生,4,一、项目内容,程序框架:1、基于对话框应用程序。,5,一、项目内容,程序框架:2、基于控制台的应用程序,6,一、项目内容,程序功能: 1. 能够显示学生信息 2. 能够增加、删除、编辑学生信息 3. 能够按

2、照学号或姓名查询学生信息 4. 能够分类统计(可选)、排序(可选) 5. 能够保存学生信息,7,一、项目内容,评分标准 1、界面 6-10分 2、显示、增加、删除、编辑、查询、保存 每项功能6-10分 3、分类统计 6-10分 4、排序 6-10分 5、其他 6-10分,8,二、演示例子,1、基于对话框的例子,9,二、演示例子,2、基于控制台的例子,10,三、相关知识,1、对话框程序2、控件使用 标签、图片、编辑框、按钮、组合框、列表框等。3、类使用4、文件使用,11,1、对话框程序,1.1步骤 1、选择工程类别 MFC AppWizard(exe) 2、选择应用程序类别 Dialog Bas

3、ed 3、选择应用程序外观 4、选择应用程序风格 5、确认相关类名称 6、完成,显示主窗口,12,1、选择工程类别MFC AppWizard(exe),选择MFC AppWizard(exe),13,2、选择应用程序类别 Dialog Based,选择Dialog Based,14,3、选择应用程序外观,去掉该复选框,15,4、选择应用程序风格,16,5、确认相关类名称,17,6、完成,显示主窗口,控件面版,主对话框,对话框资源入口,Resource视图,Class视图,File视图,18,对话框或控件,共同特征 1、Resource :外观 2、Class:逻辑实现 3、File:物理存储,

4、19,运行,20,说明,1、CStep1App类 应用程序类,该类中包含程序的入口函数: BOOL CStep1App:InitInstance() CStep1Dlg dlg; m_pMainWnd = 对应的文件Step1.h和Step1.cpp。,工程名称Step1,21,说明,2、CStep1Dlg 主对话框类,缺省应用程序的主窗口。 /数据交换的支持函数 void DoDataExchange(CDataExchange* pDX) /对话框初始化函数 BOOL OnInitDialog() /屏幕刷新函数 void OnPaint() 对应的文件Step1Dlg.h和Step1Dl

5、g.cpp。,由应用程序类调用,22,2、控件使用,静态图片,编辑框,静态文本,组框,按钮,复选框,单选框,组合框,列表框,列表视图,树形视图,标签,23,二、常用控件资源,静态图片,树形视图,按钮,复选框,单选框,组合框,编辑框,组框,静态文本,24,二、常用控件资源,什么是控件? 具有外观、属性和行为的元素,也就是说每一种控件=resource+class。比如编辑框CEdit类,按钮CButton类,25,1、静态控件,静态控件是用来显示一个字符、边框、图标、位图等,一般不接受用户的输入,也不产生任何事件。,26,1、静态控件,静态图片,编辑框,静态文本,组框,按钮,复选框,单选框,组合

6、框,列表框,列表视图,树形视图,标签,27,静态图片,适用范围 一般用于应用程序的logo图片使用步骤 1、添加图片资源 2、将控件和图片资源关联,28,1)添加图片资源,Resource,点击鼠标右键,选择Insert,29,1)添加图片资源,弹出添加资源窗口,选择bitmap,用于手绘图案,选择已有图案,30,2)将控件和图片资源关联,1、用鼠标选中“静态图片”,并拖入对话框中2、点击鼠标右键,弹出属性对话框,类型选择Bitmap,资源ID,31,2)将控件和图片资源关联,32,静态文本和组框,适用范围 一般用于静态的说明文字和边框,与其他控件共同使用。使用步骤 1、将控件拖入对话框 2、

7、设置属性,33,2、编辑框,静态图片,编辑框,静态文本,组框,按钮,复选框,单选框,组合框,列表框,列表视图,树形视图,标签,34,2、编辑框,适用范围 一般用于可编辑的单行或多行文字。编辑框相关知识 resource: 资源外观,有唯一的ID class:CEdit 成员变量:属性 成员函数:设置属性和行为 CEdit的对象:控件变量,35,2、编辑框,如何使用编辑框? 1、将控件拖入对话框 2、设置属性 3、编程对其进行控制 1)设置关联控件变量 2)使用变量调用相关成员函数,36,2、编辑框属性,多行文本,显示*,只读,37,3、编辑框的控制,1)直接调用成员函数 /设置获取编辑框文字

8、SetWindowText(LPTSTR); GetWindowText(LPTSTR); /编辑框是否变灰 EnableWindow(BOOL); /编辑框是否可见 ShowWindow(int);,38,例1:编辑框使用,设置编辑框的文字并使其变灰 1、设置控件变量 点击View-ClassWizard 2、在窗口初始化时添加代码,39,1、设置控件变量,点击添加变量,选择Control,40,1、设置控件变量,41,1、设置控件变量,系统自动添加代码如下 / Dialog Data/AFX_DATA(CStep1Dlg)enum IDD = IDD_STEP1_DIALOG ;CEdit

9、m_edit;/AFX_DATA,所有和控件映射的变量均在此,42,数据交换函数中的生成代码,系统自动添加代码如下void CStep1Dlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CStep1Dlg)DDX_Control(pDX, IDC_EDIT1, m_edit);/AFX_DATA_MAP,控件ID,映射变量,43,2、在窗口初始化时添加代码,BOOL CStep1Dlg:OnInitDialog()/ TODO: Add extra initialization her

10、em_edit.SetWindowText(welcome); m_edit.EnableWindow(false);return TRUE; / return TRUE unless you set the focus to a control,44,运行,有文字,变灰,45,3、编辑框的控制,对话框数据交换机制 DDX(Dialog Data exchange),用于控件初始化和获取用户输入的数据。 对话框数据验证DDV(Dialog data validation),用于对话框中输入数据的合法性检验。,用户只关心编辑框的内容,不关心编辑框的属性,可以使用内容相关变量操作编辑框。,46,3

11、、编辑框的控制,通常使用UpdateData函数进行数据传递。 UpdateData(true):控件-成员变量 UpdateData(false):成员变量-控件进行数据交换时UpdateData函数将设置一个CDataExchange对象,并调用对话框中的DoDataExchange重载函数。,47,例2:编辑框使用,使用DDX和DDV控制编辑框的内容和长度 1、变更控件变量并注释掉OnInitDialog()中的原有代码。 2、 在OnInitDialog()中添加新代码 3、 运行,48,1、变更控件变量,删除原有变量,增加新的变量,选择Value,字符串选择CString整型选择in

12、t、UINT、long等,49,1、变更控件变量,设置编辑框内容的长度,50,头文件中的生成代码,/ Dialog Data/AFX_DATA(CStep1Dlg)enum IDD = IDD_STEP1_DIALOG ;CStringm_edit;/AFX_DATA,51,构造函数中的生成代码,CStep1Dlg:CStep1Dlg(CWnd* pParent /*=NULL*/): CDialog(CStep1Dlg:IDD, pParent)/AFX_DATA_INIT(CStep1Dlg)m_edit = _T();/AFX_DATA_INIT/ Note that LoadIcon

13、does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);,52,数据交换函数中的生成代码,void CStep1Dlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CStep1Dlg)DDX_Text(pDX, IDC_EDIT1, m_edit);DDV_MaxChars(pDX, m_edit, 4);/AFX_DATA_MAP,控件ID,映射变量,

14、最大字符数,53,2、 在OnInitDialog()中添加新代码,BOOL CStep1Dlg:OnInitDialog()/ TODO: Add extra initialization here /m_edit.SetWindowText(welcome); /m_edit.EnableWindow(false);m_edit = 123;UpdateData(false);return TRUE; / return TRUE unless you set the focus to a control,54,3、 运行,用户只能键入4个字符,55,注意,1、每一个控件只能关联一个控件变量

15、。2、Control类型的变量只能在窗口弹出时使用。可以用来改变编辑框的内容和属性。3、Value类型的变量只能改变编辑框的内容。,56,3、编辑框控制,消息机制 控件响应键盘或鼠标的操作,称为事件。发送消息给控件;控件获取消息后,进行处理。 EN_CHABGE: 内容改变 EN_SETFOCUS: 获取焦点 EN_MAXTEXT: 插入最多字符入口 菜单View-ClassWizard,57,3、编辑框消息,选择控件,控件消息,58,例3(接例2):,当编辑框的内容超出最大限制时,弹出警告框 步骤: 1、选择IDC_EDIT1的EN_ MAXTEXT消息 2、系统自动产生对于该消息的消息映射

16、,并生成处理函数 3、在处理函数中,添加弹出警告框的代码,59,1、选择IDC_EDIT1的EN_MAXTEXT消息,控件消息,添加处理函数,60,消息映射,BEGIN_MESSAGE_MAP(CStep1Dlg, CDialog)/AFX_MSG_MAP(CStep1Dlg)ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_EN_MAXTEXT(IDC_EDIT1, OnMaxtextEdit1)/AFX_MSG_MAPEND_MESSAGE_MAP(),控件ID,消息名称,处理函数,61,消息处理函数(头文件),/ Generated message map fun

17、ctions/AFX_MSG(CStep1Dlg)virtual BOOL OnInitDialog();afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();afx_msg void OnMaxtextEdit1();/AFX_MSGDECLARE_MESSAGE_MAP(),消息处理函数,62,处理函数中添加代码,void CStep1Dlg:OnMaxtextEdit1 () / TODO: Add your control notification handler code hereUpdateData(true);AfxMe

18、ssageBox(m_edit);,63,运行,64,3、按钮,静态图片,编辑框,静态文本,组框,按钮,复选框,单选框,组合框,列表框,列表视图,树形视图,标签,65,3、按钮,常见的按钮分为三类 1、按钮 2、单选框 3、复选框消息映射 BN_CLICKED BN_DOUBLE_CLICKED,66,例4:按钮的使用,IDC_RADIO1,IDC_RADIO2,IDC_CHECK1,IDC_CHECK2,IDC_CHECK3,IDC_BUTTON1,67,例4,设置并获取单选框和复选框的值 1) 设置控件变量 2) 添加按钮的消息映射 3) 添加单选框的消息映射 4) 在按钮和单选框的消息处

19、理函数中添加代码 5) 运行,68,1) 设置控件变量,单选框必须选中Group,去掉auto,69,1) 设置控件变量,IDC_CHECK1IDC_CHECK2IDC_CHECK3IDC_RADIO1IDC_RADIO2,70,2) 添加按钮的消息映射,71,3) 添加单选框的消息映射,72,4) 在消息处理函数中添加代码,void CStep1Dlg:OnRadio1() m_radmale.SetCheck(true); m_radfemale.SetCheck(false);void CStep1Dlg:OnRadio2() m_radmale.SetCheck(false); m_r

20、adfemale.SetCheck(true);,73,4) 在消息处理函数中添加代码,void CStep1Dlg:OnButton1() CString str;if(m_radmale.GetCheck()m_radmale.GetWindowText(str);elsem_radfemale.GetWindowText(str);UpdateData(true);if(m_chk1) str+=“、游泳” ; if(m_chk2) str+=“、跑步” ;if(m_chk3) str+=“、打球” ;MessageBox(str,测试, MB_OKCANCEL);,74,5) 运行,7

21、5,4、组合框,静态图片,编辑框,静态文本,组框,按钮,复选框,单选框,组合框,列表框,列表视图,树形视图,标签,76,4、组合框,组合框控件有三种风格: Simple:包含一个编辑框和总是显示的列表框。 Drop Down:仅当单击下滚箭头时才出现列表框。 Drop List:仅当单击下滚箭头时才出现列表框。但是 没有编辑功能,用户只能选择列表中已有的项。,77,4、组合框,组合框的事件 CBN_SELCHANGE 如果选择项改变 CBN_EDITCHANGE 如果编辑框种文字改变,78,4、组合框的方法,1.获取组合框中的项数 int GetCount(); 2.获取组合框中指定位置的文字

22、 void GetLBText( int nIndex, CString& rString ),79,4、组合框的方法,3.获取/设置当前选择项 SetCurSel(int index); int GetCurSel();4.添加/删除文字项 int AddString(LPCTSTR lpszString ) int InsertString( int nIndex, LPCTSTR lpszString ); int DeleteString( UINT nIndex );,80,4、组合框的方法,5.从组合框中查询指定字符串 int FindString( int nStartAfter

23、, LPCTSTR lpszString ) int FindStringExact( int nIndexStart, LPCTSTR lpszFind ),81,例5,向组合框添加数据,并获取所选的数据 1、设置控件变量 2、设置控件属性 3、在OnInitDialog()中添加初始化代码 4、添加组合框消息映射CBN_SELCHANGE 5、在处理函数中添加代码,82,1、设置控件变量,83,2、设置控件属性,可以直接在添加数据,CTRL+ENTER换行,组合框风格,84,3、在OnInitDialog()中添加初始化代码,BOOL CStep1Dlg:OnInitDialog() m_

24、combo1.AddString(“24); m_combo1.InsertString(0,“20”); m_combo1.SetCurSel(3); return TRUE; / return TRUE unless you set the focus to a control,85,运行测试,86,4、添加组合框消息映射CBN_SELCHANGE,87,5、在处理函数中添加代码,void CStep1Dlg:OnSelchangeCombo1() / TODO: Add your control notification handler code hereint index = m_co

25、mbo1.GetCurSel();CString str;m_combo1.GetLBText(index,str);AfxMessageBox(str);,88,运行,89,5、树形视图,静态图片,编辑框,静态文本,组框,按钮,复选框,单选框,组合框,列表框,列表视图,树形视图,标签,90,5、树形视图,IDC_TREE1,Lines,button,91,设置控件属性,风格,92,常用树形控件的事件,树形控件 NM_CLICKED NM_RCLICKED NM_SETFOCUS树结点 TVN_SELCHANGED TVN_ITEMEXPANDED TVN_DELETEITEM,93,树形控件

26、的方法,1、插入/删除结点 HTREEITEM InsertItem(LPCTSTR lpszItem, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST ); BOOL DeleteItem( HTREEITEM hItem ); BOOL DeleteAllItems( );2、获取选中的结点 HTREEITEM GetSelectitem();,94,树形控件的方法,3、设置/获取已知结点的标题 CString GetItemText(HTREEITEM hitem) BOOL SetItemText( HTR

27、EEITEM hItem, LPCTSTR lpszItem );4、获取结点之间的关系 BOOL ItemHasChildren(HTREEITEM hItem); HTREEITEM GetChildItem(HTREEITEM hItem) HTREEITEM GetNextSiblingItem(HTREEITEM hItem),95,树形控件的方法,5、结点展开/收缩BOOL Expand( HTREEITEM hItem, UINT nCode );ncode的取值: TVE_COLLAPSE TVE_COLLAPSERESET TVE_EXPAND TVE_TOGGLE,96,例

28、6,添加并获取选中的树结点 1) 设置控件变量 2) 在OnInitDialog()初始化 3) 添加树形控件的消息映射 4) 在消息处理函数中添加代码 5) 运行,97,1) 设置控件变量,98,2) 在OnInitDialog()初始化,BOOL CStep1Dlg:OnInitDialog() HTREEITEM root = m_tree1.InsertItem(本科生);m_tree1.InsertItem(张三,root);m_tree1.InsertItem(李四,root); m_tree1.Expand(root,TVE_EXPAND); root = m_tree1.Ins

29、ertItem(研究生);m_tree1.InsertItem(王单,root);m_tree1.InsertItem(丁一,root);,99,3) 添加树形控件的消息映射,100,4) 在消息处理函数中添加代码,void CStep1Dlg:OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult) NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;/ TODO: Add your control notification handler code hereHTREEITEM hitem = m_tre

30、e1.GetSelectedItem();m_edit = m_tree1.GetItemText(hitem);if(m_edit!=本科生 ,101,5) 运行,和树形控件结点对应,102,例7:删除当前选中结点的所有孩子,HTREEITEM hitem = m_tree1.GetSelectedItem();if (m_tree1.ItemHasChildren(hitem) HTREEITEM hNext; HTREEITEM hChild= m_tree1.GetChildItem(hitem); while (hChild!= NULL) hNext = m_tree1.GetNe

31、xtSiblingItem( hChild); m_tree1.DeleteItem(hChild); hChild = hNext; ,103,5、列表视图,静态图片,编辑框,静态文本,组框,按钮,复选框,单选框,组合框,列表框,列表视图,树形视图,标签,104,5、列表视图的风格,icon,smallicon,list,report,105,5、列表视图的事件,列表控件 NM_CLICKED NM_RCLICKED NM_SETFOCUS列表数据 LVN_ITEMCHANGED LVN_COLUMNCLICK LVN_DELETEITEM LVN_INSERTITEM,106,5、列表视图

32、的方法,1、添加/删除列 int InsertColumn( int nCol, LPCTSTR lpszColumnHeading, int nFormat = LVCFMT_LEFT, int nWidth = -1, int nSubItem = -1 ); BOOL DeleteColumn( int nCol );,107,5、列表视图的方法,2、添加/删除数据int InsertItem( int nItem, LPCTSTR lpszItem );int InsertItem( int nItem, LPCTSTR lpszItem, int nImage );BOOL Dele

33、teItem( int nItem );BOOL DeleteAllItems( );,108,5、列表视图的方法,3、获取列表中数据 CString GetItemText( int nItem, int nSubItem); BOOL SetItemText( int nItem, int nSubItem, LPTSTR lpszText );4、列标与图标关联 CImageList* SetImageList( CImageList* pImageList, int nImageList ); CImageList* GetImageList( int nImageList );,10

34、9,5、列表视图的方法,5、获取列表中选中的行 POSITION GetFirstSelectedItemPosition( ); int GetNextSelectedItem( POSITION,110,6、对话框,1、有模式对话框 比如设置属性对话框,一般包括OK和Cancle按钮,使用DoModal()函数调用,利用其返回值判断该窗口由哪个按钮关闭。2、无模式对话框 比如查找对话框.,111,例8,如何新建一个有模式对话框? 1、新建对话框资源 2、设置对话框属性 3、生成对应的对话框类 4、测试对话框,112,1、新建对话框资源,1、点击鼠标右键2、选择Insert Dialog,1

35、13,1、新建对话框资源,资源ID,对话框外观,114,2、设置对话框属性,缺省ID,字体,标题,是否有菜单,风格,边框,窗口右上角,115,3、生成对应的对话框类,点击右键菜单classwizard弹出,116,3、生成对应的对话框类,类名,对应源文件,基类名,资源ID,117,3、生成对应的对话框类,资源ID和类的对应enum IDD=IDD_DIALOG1,118,4、测试对话框,1、在主对话框中添加 #include dialog1.h 2、在主对话框的OnButton1()函数中添加 CDialog1 dlg1; if(dlg1.DoModal()=IDOK)AfxMessageBo

36、x(点击OK按钮); else AfxMessageBox(点击Cancle按钮);,119,5、运行,120,例9:在另一个窗口显示列表框,步骤 1) 设置图标 2) 设置列表框变量 3) 设置列表外观属性 4) 在CDialog1类的OnInitDialog中添加代码将图标与列表相连,设置列表列标题 5) 在CStep1Dlg类的OnButton1()中添加代码初始化列表视图数据 6) 运行,121,1) 设置图标,在资源视图中添加三个ICON,122,2) 设置列表变量,设置控件变量,123,3) 设置列表外观属性,风格,单选,124,4) 在OnInitDialog中添加代码将图标与列

37、表相连,1、首先需要在CDialog1中添加成员变量 public:CImageList *m_pImageList;/用来传递来自主窗口的数据 CString name; CString gender;CString age;,125,2、添加OnInitDialog()事件,126,4) 在OnInitDialog中添加代码将图标与列表相连,BOOL CDialog1:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization hereCStep1App *pApp = (CStep1App *)AfxGet

38、App();m_pImageList = new CImageList();m_pImageList-Create(16,16,ILC_COLOR32,0,10);m_pImageList-Add(pApp-LoadIcon(IDI_ICON1);m_pImageList-Add(pApp-LoadIcon(IDI_ICON2);m_pImageList-Add(pApp-LoadIcon(IDI_ICON3);m_list.SetImageList(m_pImageList,LVSIL_SMALL);,创建16*16的32位色的图标列表,将图标调入内存,图标与列表关联,127,5) 在OnI

39、nitDialog中添加代码初始化列表视图,BOOL CDialog1:OnInitDialog() /添加列 m_list.InsertColumn(0,姓名,LVCFMT_CENTER,60,-1); m_list.InsertColumn(1,年龄,LVCFMT_CENTER,60,0); m_list.InsertColumn(2,性别,LVCFMT_CENTER,60,1); /添加数据 m_list.InsertItem(0,name,1); m_list.SetItemText(0,1,gender); m_list.SetItemText(0,2,age);,128,5)为主窗

40、口的“确定”按钮添加事件及代码,void CStep1Dlg:OnOK() / TODO: Add extra validation hereCDialog1 dlg1;UpdateData(false);dlg1.name = m_edit;dlg1.gender = m_radmale.GetCheck()? 男:女 ;m_combo1.GetLBText(m_combo1.GetCurSel(),dlg1.age); dlg1.DoModal();CDialog:OnOK();,129,运行,130,例10:获取列表中选中的行,POSITION pos = m_list.GetFirst

41、SelectedItemPosition(); while (pos!=NULL) int nItem = m_list.GetNextSelectedItem(pos); /添加处理代码 ,131,问题1,如何在两个对话框之间传递数据?,132,3、类的使用,注意类的继承 基类:CStudent 本科生类 成员变量: CString m_strName; CString m_strID; int m_nAge; CString m_strDepartment; 成员函数: virtual Display(CEdit *pEdit ),133,3、类的使用,派生类 CMasterStudent

42、硕士生类 成员变量:增加 CString m_strLab; 成员函数:重载 Display(CEdit *pEdit )派生类 CDoctorStudent博士生类 成员变量:增加 int m_nPaper; 成员函数:重载 Display(CEdit *pEdit ),134,3、类的使用,注意 直接使用成员变量由于对变量的赋值和读取具有随意性,因此对变量的合法性难以控制。所以在软件工程中一般不建议直接使用变量。 例如:CString m_strName; 建议: CString GetName(); void SetName(CString newName);,135,例11:使用MFC

43、生成基类,在MFC中提供了向导,可以用来生成基本的类框架,具体步骤如下: 1、建立基类 2、添加成员变量和函数 3、建立派生类 也可以手动添加文件,编写类定义。,136,生成自定义CStudnet类 步骤1,新建类,137,生成自定义CStudnet类 步骤2,类别,类名,对应源文件,138,生成自定义CStudnet类 步骤3,添加类方法,139,生成自定义CStudnet类 步骤4,140,例11:使用MFC生成派生类,新建类,141,生成自定义派生类CMasterStudnet类,指定基类,142,3、类的使用,可以使用3个对象数组存储学生信息例如 CStudent Bstu30; int Bsize; CMasterStudent Mstu30; int Msize; CDoctorStudent Dstu30; int Dsize;,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报