VC++开发基于对话框应用实例学生信息管理Word格式.docx

上传人:b****6 文档编号:20694155 上传时间:2023-01-25 格式:DOCX 页数:38 大小:792.61KB
下载 相关 举报
VC++开发基于对话框应用实例学生信息管理Word格式.docx_第1页
第1页 / 共38页
VC++开发基于对话框应用实例学生信息管理Word格式.docx_第2页
第2页 / 共38页
VC++开发基于对话框应用实例学生信息管理Word格式.docx_第3页
第3页 / 共38页
VC++开发基于对话框应用实例学生信息管理Word格式.docx_第4页
第4页 / 共38页
VC++开发基于对话框应用实例学生信息管理Word格式.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

VC++开发基于对话框应用实例学生信息管理Word格式.docx

《VC++开发基于对话框应用实例学生信息管理Word格式.docx》由会员分享,可在线阅读,更多相关《VC++开发基于对话框应用实例学生信息管理Word格式.docx(38页珍藏版)》请在冰豆网上搜索。

VC++开发基于对话框应用实例学生信息管理Word格式.docx

汉族;

满族;

回族;

壮族;

蒙古族;

藏族;

维吾尔族;

11

IDC_CHECK1

读书

12

IDC_CHECK2

唱歌

13

IDC_CHECK3

足球

14

IDC_CHECK4

游泳

15

IDC_CHECK5

旅游

16

IDC_CHECK6

其他

17

IDC_BTN_NEWDEPARTMENT

新建系部

18

IDC_BTN_NEWCLASS

新建班级

19

IDC_BTN_SAVE

保存

20

IDC_BTN_LOAD

读入

21

IDCANCEL

退出

22

IDC_BTN_NEWSTUDENT

新建

23

IDC_BTN_CONFIRM

确定

姓名:

学号:

性别:

出生日期:

政治面貌:

民族:

兴趣爱好:

2、打开“MFC类向导”,按照下图设置控件在CStudengInfoDlg类中的成员变量;

三、设计系部类、班级类和学生类

1、选择菜单“项目”->

“添加类”,添加三个“MFC类”:

CDepartment、CClass、CStudent,基类为Object;

2、学生类(CStudent)的代码:

//Student.h

#pragmaonce

//CStudent命令目标

classCStudent:

publicCObject

{

DECLARE_SERIAL(CStudent)

public:

CStudent();

virtual~CStudent();

voidSerialize(CArchive&

ar);

CStringm_strName;

CStringm_strID;

intm_nSex;

COleDateTimem_dtBirthdate;

CStringm_strNation;

CStringm_strPolitics;

WORDm_wHobbies;

};

//Student.cpp:

实现文件

#include"

stdafx.h"

StudentInfo.h"

Student.h"

//CStudent

IMPLEMENT_SERIAL(CStudent,CObject,0)

CStudent:

:

CStudent()

m_strName=_T("

"

);

m_strID=_T("

m_nSex=0;

m_dtBirthdate=COleDateTime:

GetCurrentTime();

m_strNation=_T("

汉族"

m_strPolitics=_T("

群众"

m_wHobbies=0x0000;

}

~CStudent()

//CStudent成¨

¦

员¡

À

函¡

¥

数º

y

voidCStudent:

Serialize(CArchive&

ar)

if(ar.IsLoading())

{

ar>

>

m_strName>

m_strID>

m_nSex>

m_strNation>

m_strPolitics>

m_dtBirthdate>

m_wHobbies;

}

else

ar<

<

m_strName<

m_strID<

m_nSex<

m_strNation<

m_strPolitics<

m_dtBirthdate<

3、班级类(CClass)的实现代码:

//Class.h

//CClass命令目标

#include<

afxtempl.h>

student.h"

classCClass:

DECLARE_SERIAL(CClass)

CClass();

virtual~CClass();

CTypedPtrArray<

CObArray,CStudent*>

m_Students;

//Class.cpp:

//

Class.h"

//CClass

IMPLEMENT_SERIAL(CClass,CObject,0)

CClass:

CClass()

~CClass()

intnCount;

nCount=(int)this->

m_Students.GetSize();

if(nCount>

0)

for(inti=nCount-1;

i>

=0;

i--)

{

deletem_Students.GetAt(i);

}

m_Students.RemoveAll();

//CClass成员函数

voidCClass:

m_strName;

this->

m_Students.Serialize(ar);

4、系部类(CDepartment)的实现代码:

//Department.h

//CDepartment命令目标

class.h"

classCDepartment:

publicCObject

DECLARE_SERIAL(CDepartment)

CDepartment();

virtual~CDepartment();

CObArray,CClass*>

m_Classes;

//Department.cpp:

Department.h"

//CDepartment

IMPLEMENT_SERIAL(CDepartment,CObject,0)

CDepartment:

CDepartment()

~CDepartment()

m_Classes.GetSize();

deletem_Classes.GetAt(i);

m_Classes.RemoveAll();

//CDepartment成员函数

voidCDepartment:

m_Classes.Serialize(ar);

四、应用程序类的设计

1、在应用程序类(CStudentInfoApp)的定义文件(studentinfo.h)中添加头文件的引用:

#include<

#include"

并添加成员变量和成员函数:

public:

CTypedPtrArray<

CObArray,CDepartment*>

m_Departments;

voidRemoveMemory();

效果如图所示:

在studentinfo.cpp文件中,添加RemoveMemory()函数的实现代码:

voidCStudentInfoApp:

RemoveMemory()

m_Departments.GetSize();

deletem_Departments.GetAt(i);

m_Departments.RemoveAll();

2、打开“MFC”类向导,为应用程序类(CStudentInfoApp)添加虚函数ExitInstance(),操作界面及步骤如图所示:

编辑ExitInstance()虚函数,添加RemoveMemory();

函数的调用,代码如下:

intCStudentInfoApp:

ExitInstance()

//TODO:

在此添加专用代码和或调用基类

RemoveMemory();

returnCWinApp:

ExitInstance();

五、树型控件图标资源设计

1、在资源视图右键快捷菜单中选择“添加资源”菜单命令,如图所示:

在弹出的的对话框中选择Bitmap资料类型,单击“新建”按钮建立一个资源ID为IDB_BITMAP1的位图资源,如图所示:

2、编辑位图资源的属性,在属性窗口中按下图设置相关属性:

3、编辑位图资源,如图所示建立4个图标,每个图标占用16*16像素,分别作为树型控件中的“当前选中项”、“系部”、“班级”和“学生”的图标;

六、建立输入对话框

1、添加一个对话框资源,如图所示:

2、编辑对话框的属性,设置ID为IDD_DLG_INPUT;

3、按照如图所示设计对话框界面,如图所示,各控件的属性按照下表设置

IDC_STATIC_TEXT

IDC_EDIT1

IDOK

取消

4、为对话框资料建立相应的对话框类(CDlgInput),如图所示:

5、打开MFC类向导,按照下图所示设置控件在CDlgInput类中的成员变量;

6、为CDlgInput类添加一个字符串成员m_strTitle,用于显示对话框标题:

CStringm_strTitle;

7、为CDlgInput类添加一个构造函数

CDlgInput(CStringstrTitle,CStringm_strText);

其实现代码为:

CDlgInput:

CDlgInput(CStringstrTitle,CStringstrText)

:

CDialogEx(CDlgInput:

IDD,NULL)

m_strInput=_T("

m_strTitle=strTitle;

m_strText=strText;

8、打开MFC类向导,为CDlgInput类添加一个虚函数OnInitDialog,如图所示:

代码为:

BOOLCDlgInput:

OnInitDialog()

CDialogEx:

OnInitDialog();

在此添加额外的初始化

SetWindowText(m_strTitle);

UpdateData(FALSE);

returnTRUE;

//returnTRUEunlessyousetthefocustoacontrol

七、对话框类CStudentInfoDlg的初始化

1、列表控件(IDC_LIST1)初始化,建立CStudentInfoDlg类的成员函数SetList(),在studentinfodlg.h中添加成员函数的定义:

voidSetList();

在studentinfodlg.cpp中添加成员函数的实现,代码如下:

voidCStudentInfoDlg:

SetList()

m_listStudent.InsertColumn(0,L"

学号"

m_listStudent.SetColumnWidth(0,80);

m_listStudent.InsertColumn(1,L"

姓名"

m_listStudent.SetColumnWidth(1,50);

m_listStudent.SetExtendedStyle(m_listStudent.GetExtendedStyle()|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);

2、树型控件(IDC_TREE1)初始化。

在CStudentInfoDlg中添加CImageList类型的数据成员m_ImageList,代码为:

CImageListm_ImageList;

建立CStudentInfoDlg类的成员函数SetTree(),在studentinfodlg.h中添加成员函数的定义:

voidSetTree();

SetTree()

CBitmapbm;

bm.LoadBitmap(IDB_BITMAP1);

m_ImageList.Create(16,16,ILC_COLOR8|ILC_MASK,17,0);

m_ImageList.Add(&

bm,RGB(255,255,255));

m_treeInfo.SetImageList(&

m_ImageList,TVSIL_NORMAL);

CFont*font=CFont:

FromHandle((HFONT):

GetStockObject(DEFAULT_GUI_FONT));

3、树型控件(IDC_TREE1)中层次型数据的显示。

建立CStudentInfoDlg类的成员函数CreateTree(),在studentinfodlg.h中添加两个成员函数的定义:

voidCreateTree();

HTREEITEMCreateTreeItem(HTREEITEMhParent,intnType,CStringstrText,LPARAMlParam);

在studentinfodlg.cpp中添加两个成员函数的实现,代码如下:

CreateTree()

m_treeInfo.DeleteAllItems();

HTREEITEMhShool=CreateTreeItem(0,1,_T("

华北电力大学"

),0);

intnDepartments,nClasses;

nDepartments=(int)theApp.m_Departments.GetSize();

CDepartment*pD;

CClass*pC;

for(inti=0;

i<

nDepartments;

i++)

pD=theApp.m_Departments.GetAt(i);

if(pD!

=NULL)

HTREEITEMhDepartment;

hDepartment=CreateTreeItem(hShool,2,pD->

m_strName,(LPARAM)pD);

nClasses=(int)pD->

for(intj=0;

j<

nClasses;

j++)

{

pC=pD->

m_Classes.GetAt(j);

CreateTreeItem(hDepartment,3,pC->

m_strName,(LPARAM)pC);

}

m_treeInfo.Invalidate();

HTREEITEMCStudentInfoDlg:

CreateTreeItem(HTREEITEMhParent,intnType,CStringstrText,LPARAMlParam)

TV_INSERTSTRUCTltvInsertItem;

ltvInsertItem.hParent=hParent;

ltvInsertItem.hInsertAfter=TVI_LAST;

ltvInsertItem.item.mask=TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE|TVIF_PARAM;

ltvInsertItem.item.lParam=lParam;

ltvInsertItem.item.iImage=nType;

ltvInsertItem.item.iSelectedImage=0;

ltvInsertItem.item.pszText=strText.GetBuffer(0);

//CStringtoLPWCTR

strText.ReleaseBuffer();

HTREEITEMhItem=m_treeInfo.InsertItem(&

ltvInsertItem);

returnhItem;

4、在studentinfodlg.h中添加头文件的引用:

并定义指针类型成员变量m_pCurrStud,代码如下:

CStudent*m_pCurrStud;

5、在OnInitDialog()函数中添加如下代码:

SetList();

SetTree();

CreateTree();

m_pCurrStud=NULL;

效果如图:

八、学生信息的显示功能。

1、为CStudentInfoDlg添加学生信息界面清理的成员函数ClearStudentInfo(),在studentinfodlg.h中添加成员函数的定义:

voidClearStudentInfo();

ClearStudentInfo()

m_bHobby01=m_bHobby02=m_bHobby03=m_bHobby04=m_bHobby05=m_bHobby06=FALSE;

2、添加树型控件(IDC_TREE1)的选择改变消息的响应函数。

打开MFC类向导,如图所示,按照步骤建立TVN_SELCHANGED消息的响应函数OnSelchangedTree1:

该函数的代码如下:

OnSelchangedTree1(NMHDR*pNMHDR,LRESULT*pResult)

NM_TREEVIEW*pNMTreeView=(NM_TREEVIEW*)pNMHDR;

Addyourcontrolnotificationhandlercodehere

TVITEMtvItem;

if(GetCurrentTreeItem(&

tvItem))

switch(tvItem.iImage)

case1:

//学¡

ì

校¡

ê

this->

GetDlgItem(IDC_BTN_NEWDEPARTMENT)->

EnableWindow(TRUE);

GetDlgItem(IDC_BTN_NEWCLASS)->

EnableWindow(FALSE);

GetDlgItem(IDC_BTN_NEWSTUDENT)->

GetDlgItem(IDC_BTN_CONFIRM)->

m_listStudent.DeleteAllItems();

ClearStudentInfo();

break;

case2:

//系¦

Ì

部?

GetDlgItem(IDC_BTN_

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1