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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(学生信息管理应用程序Word文档下载推荐.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

学生信息管理应用程序Word文档下载推荐.docx

1、:UpdateAllViews和Cview:OnUpdate的相互作用来实现的,而且为了避免传输的相互干涉,采用提示号来区分,即给1Hint变量赋予不同的值,程序代码会根据1Hint的值的不同执行不同的代码,并使数据显示出来。在实现保存功能时用到了简单数组集合类,并利用了CstringArray序列化的一个内部机制实现数据的保存。打开一个已经保存过的文件时通过1Hint值的判断来执行一个双循环,通过此双循环代码可以让一个由简单数组集合类定义的变量中的数据读取出来,并在列表视图中显示。为了实现一个列表项基本信息在左面的表单视图的控件中显示,需要视图和文档数据的交换,此程序以在Doc类中事先定义好

2、的变量为媒介,通过给这些变量赋值来实现数据在文档和视图之间的回传。四、设计的步骤及主要代码首先为此程序(工程名为TiMu1)创建一个表单视图,在用MFC AppWizard创建的第六步中选择CFormView作为文档应用程序视图类的基类。然后再添加一个CListView类的派生类,派生类名为CListCtrlView,此派生类将在切分窗口使用到。还有一点很重要,要使添加的派生类正确编译,那么必须在StdAfx.h头文件中有下列语句才能保证程序正确编译。#inciude”afxcview.h”为CmainFrame添加OnCreateClient消息映射和和一个CsplitterWnd形的变量,

3、变量名为m_wndSplitter,并在函数中添加如下代码:BOOL CMainFrame:OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) ModifyStyle(0,WS_VSCROLL,0);/让窗口有水平,垂直滚动条ModifyStyle(0,WS_HSCROLL,0);CRect rect;GetWindowRect(&rect);m_wndSplitter.CreateStatic(this,1,2);/静态切分窗口 m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CTi

4、Mu1View),CSize(0,0),pContext);/为相应的窗格指定一个视图类 m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CListCtrlView),CSize(0,0),pContext);m_wndSplitter.SetColumnInfo(0,rect.Width()/3,10);/设置窗格的宽度.m_wndSplitter.SetColumnInfo(1,rect.Width()/2,10);m_wndSplitter.RecalcLayout();/重新布局return TRUE;return CFrameWnd:OnCrea

5、teClient(lpcs, pContext);在表单视图中添加程序所需要的几个控件并在类向导中设置控件的关联变量,再为各个按钮控件(添加、删除、修改、浏览和查询)映射BN_CLICKED(单击)消息映射,取默认的函数名。各个函数中添加的代码如下:添加功能:void CTiMu1View:OnButtonAdd() UpdateData(); m_strName.TrimLeft(); m_strNo.TrimLeft(); if(m_strName.IsEmpty() MessageBox(必须要有姓名!); return; if(m_strNo.IsEmpty()必须要有学号! CTiM

6、u1Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); pDoc-no=m_strNo;name=m_strName;age=m_strAge; if(m_bMale) pDoc-sex=男; else pDoc-女 /下面的代码传递一个“1”的消息 /以实现调用CListCtrlView函数中的OnUpdate函数 /并通过判断 lHint 的值为 1 来实现表单控件的数据 /在列表里显示UpdateAllViews(NULL,1,NULL); /下面的代码是在要添加的数据在右面的列表中显示后,使左面的控件恢复“空白”的状态,以方便用户的下一次添加数

7、据 m_strNo= m_strName= m_strAge= UpdateData(FALSE); 删除功能:OnButtonDel() /*下面的代码传递一个“2”的消息以实现调用CListCtrlView函数中的OnUpdate函数并通过判断 lHint 的值为 2 来实现在列表里删除一个列表项的信息*/UpdateAllViews(NULL,2,NULL);修改功能:OnButtonXiugai() /*下面的代码传递一个“3”的消息以实现调用CListCtrlView函数中的OnUpdate函数并通过判断 lHint 的值为 3 来实现在列表里修改一个列表项的信息并把修改后的信息覆盖

8、到原来的那个列表项上*/UpdateAllViews(NULL,3,NULL);查询功能:OnButtonChaxun() / TODO: Add your control notification handler code here /*下面的代码传递一个“4”的消息以实现调用CListCtrlView函数中的OnUpdate函数并通过判断 lHint 的值为 4 来实现在列表里查询一个列表项的信息并通过弹出一个对话框显示所要查询的一个学生信息*/UpdateAllViews(NULL,4,NULL);浏览功能:OnButtonLiulan() UpdateAllViews(NULL,5,N

9、ULL);说明:上面的代码传递一个“n”(n为int形变量并根据不同的函数取不同的值)的消息以实现调用CListCtrlView函数中的OnUpdate函数,并通过判断 lHint 的值来实现在列表里添加、删除、修改、浏览或查询一个列表项的信息。UpdateAllViews(NULL,n,NULL)函数所传递的1Hint的不同的值需要一个相应的函数用来接收和判断的值,并通过1Hint值的不同执行不同的代码,这样的函数需要在 ClistCtrlView类中映射OnUpdate消息来实现,函数的代码为:void CListCtrlView:OnUpdate(CView* pSender, LPAR

10、AM lHint, CObject* pHint) CListCtrl& m_ListCtrl=GetListCtrl(); m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT);/*设置在单击列表项时,整行选择。下面的代码是利用1Hint的不同的值来建立数据的传输在视图中根据1Hint的值做出不同的动作,并在每个if语句中通过一个for循环使列表中的数据保存到一个简单数组集合类中,即保存到了在Doc类中定义的 CStringArray m_strContents对象中。在每次调用保存代码时,必须调用 pDoc-m_strContents.Remo

11、veAll(); 语句以使m_strContents对象中数据清零,防止在保存后,然后在打开时数据出现错误*/ /这句话在出现错误后,好久才想出来! if(lHint=1) CTiMu1Doc*pDoc=(CTiMu1Doc*)GetDocument(); ASSERT_VALID(pDoc); /m_ListCtrl.DeleteAllItems(); LVFINDINFO info; info.flags=LVFI_PARTIAL|LVFI_STRING; info.psz=pDoc-no; if(m_ListCtrl.FindItem(&info)!=-1) CString str; s

12、tr.Format(不能添加学号相同的学生信息!n学号为“%s”的学生基本信息已添加过!,pDoc-no); MessageBox(str,警告,MB_ICONSTOP|MB_OKCANCEL); return; m_ListCtrl.InsertItem(0, m_ListCtrl.SetItemText(0,0,pDoc- m_ListCtrl.SetItemText(0,1,pDoc-name); m_ListCtrl.SetItemText(0,2,pDoc-sex); m_ListCtrl.SetItemText(0,3,pDoc-age); CString str1=pDoc- CString str2; str2.Format(添加了学号为“%s”的学生信息!nt添加成功!nt,str1); MessageBox(str2,添加结果,MB_ICONWARNING|MB_OKCANCEL); int nCount=m_ListCtrl.GetItemCount();/*这句话的作用是使m_strContents对象中数据清零,防止在保存后,然后在打开时数据出现错误*/ for(int n=0;nm_strContents.GetSize();

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2