3实验步骤Word文档格式.docx
- 文档编号:7011999
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:26
- 大小:261.94KB
3实验步骤Word文档格式.docx
《3实验步骤Word文档格式.docx》由会员分享,可在线阅读,更多相关《3实验步骤Word文档格式.docx(26页珍藏版)》请在冰点文库上搜索。
如图4。
图4打开的对话框窗体
设计对话框窗体如图5所示。
可以通过右键单击控件,选择“Properties”
设置控件的“ID”属性和“Caption”属性。
对话框上的主要控件及其属性设置如表1。
图5文件综合操作示例界面
表1 文件综合操作示例界面的控件及其属性设置
控件ID
说明
IDC_EDTXSBH
EditBox(编辑框),用于显示和输入学生编号
IDC_EDTXSXM
EditBox(编辑框),用于显示和输入学生姓名
IDC_CMBXSXB
ComboBox(组合框),用于显示和设置学生性别。
设置Type属性为Dropdown,用户只可以进行选择,并将Data属性设置成”male|female”(先填入male,然后“ctrl+Enter”换行填入female)
IDC_EDTCSRQ
EditBox(编辑框),用于显示和输入出生日期
IDC_EDTBJMC
EditBox(编辑框),用于显示和输入班级名称
IDC_BTNFIRST
Button(按钮),标题Caption设为”First”,用于将记录指针移到首部
IDC_BTNPRIOR
Button(按钮),标题Caption设为”Prior”,用于将记录指针向前移动一个
IDC_BTNNEXT
Button(按钮),标题Caption设为”Next”,用于将记录指针向后移动一个
IDC_BTNLAST
Button(按钮),标题Caption设为”Last”,用于将记录指针移到尾部
IDC_BTNADD
Button(按钮),标题Caption设为”Add”,用于添加新记录
IDC_BTNEDIT
Button(按钮),标题Caption设为”Edit”,用于编辑旧记录
IDC_BTNCANCEL
Button(按钮),标题Caption设为”Cancel”,用于恢复所作的添加或修改
IDC_BTNSAVE
Button(按钮),标题Caption设为”Save”,用于保存所作的添加或修改
IDC_BTNDELETE
Button(按钮),标题Caption设为”Delete”,删除当前记录
4.为4个EditBox(编辑框)和一个ComboBox(组合框)关联成员变量。
在编辑框上点右键,选择“ClassWizard”,如图6。
图6“ClassWizard”
在打开的类向导编辑框,点击“MemberVariables”标签,为4个EditBox(编辑框)和一个ComboBox(组合框)关联成员变量,如图7所示。
关联方法:
双击控件的”ControlIDs”,打开对话框,按照下表2输入类型和成员变量名称。
表2关联列表
ID名称
类型
变量名
CString
m_xsbh
CString
m_xsxm
m_xsxb
m_csrq
m_bjmc
图7对应关联
5.定义学生基本信息结构。
在对话框头文件(FileExamDlg.h)中定义学生基本信息结构,定义的结构如下(此段代码添加到对话框类CFileExamDlg定义之前):
#pragmapack(push,1)
//定义学生基本信息结构
typedefstruct_CStudentData
{
TCHARxsbh[7];
//学生编号
TCHARxsxm[21];
//学生姓名
TCHARxb[10];
//学生性别
TCHARcsrq[11];
//出生日期
TCHARbjmc[21];
//班级名称
}CStudentData;
#pragmapack(pop)
接着再定义一个全局常量来表示存储学生信息的文件名(此段代码添加到对话框类CFileExamDlg定义之前)。
constLPCTSTRSTUDENTFILEPATH=_T("
\\MyDocuments\\student.dat"
);
6.定义私有变量。
定义一个列表以存储学生的基本信息,因此在对话框类中添加如下代码以定义私有变量(添加到类CFileExamDlg的定义文件FileExamDlg.h,注意:
放到类CFileExamDlg的里面)
private:
//定义存储学生数据表的队列
CList<
CStudentData,CStudentData&
>
m_lstStudent;
//定义操作标识,0-代表添加;
1-代表编辑
intm_operID;
//存储指针位置
intm_iCurPos;
7.添加头文件。
在对话框头文件(FileExamDlg.h)中加上#include<
Afxtempl.h>
这句代码,因为我们声明的列表变量用到了标准模板库。
(放在”#endif//_MSC_VER>
=1000”之后)
8.定义私有方法。
为对话框类添加两个私有方法SetControlEnable和SetNavigatorButton,分别用于设置窗体上控件的有效性和指针移动按钮的有效性,他们的声明代码如下:
(添加到类CFileExamDlg的定义文件FileExamDlg.h,注意:
//设置控件有效性
voidSetControlEnable(boolaValue);
//设置指针移动按钮的有效性
voidSetNavigatorButton(intaValue);
以上两个方法的实现代码如下:
(添加到FileExamDlg.cpp中)
/*
*函数介绍:
设置控件有效性
*入口参数:
aValue代表控件的有效性
*出口参数:
(无)
*返回值:
*/
voidCFileExamDlg:
:
SetControlEnable(boolaValue)
/*设置输入框的有效性*/
((CEdit*)GetDlgItem(IDC_EDTXSBH))->
EnableWindow(aValue);
((CEdit*)GetDlgItem(IDC_EDTXSXM))->
((CEdit*)GetDlgItem(IDC_CMBXSXB))->
((CEdit*)GetDlgItem(IDC_EDTCSRQ))->
((CEdit*)GetDlgItem(IDC_EDTBJMC))->
/*设置指针移动按钮的有效性*/
((CButton*)GetDlgItem(IDC_BTNFIRST))->
EnableWindow(!
aValue);
((CButton*)GetDlgItem(IDC_BTNPRIOR))->
((CButton*)GetDlgItem(IDC_BTNNEXT))->
((CButton*)GetDlgItem(IDC_BTNLAST))->
/*设置操作按钮的有效性*/
((CButton*)GetDlgItem(IDC_BTNADD))->
((CButton*)GetDlgItem(IDC_BTNEDIT))->
((CButton*)GetDlgItem(IDC_BTNCANCEL))->
((CButton*)GetDlgItem(IDC_BTNSAVE))->
((CButton*)GetDlgItem(IDC_BTNDELETE))->
}
设置指针移动按钮的有效性
aValue代表当前记录位置
SetNavigatorButton(intaValue)
//如果学生队列数据小于2
if(m_lstStudent.GetCount()<
2)
{
EnableWindow(FALSE);
return;
}
//指针移到首部
if(aValue==0)
if(m_lstStudent.GetCount()>
=2)
{
EnableWindow(TRUE);
}
}//如果指针移到末尾
elseif(aValue==m_lstStudent.GetCount()-1)
else
9.添加指针移动按钮的单击事件代码。
在对话框窗体上直接双击按钮,EVC便会自动创建它的单击方法声明。
其中”First”、”Prior”、”Next”、”Last”按钮的单击事件实现代码如下:
将指针移到首部
OnBtnfirst()
CStudentDatastudentData=m_lstStudent.GetHead();
m_iCurPos=0;
//更新显示
m_xsbh=studentData.xsbh;
m_xsxm=studentData.xsxm;
m_xsxb=studentData.xb;
m_csrq=studentData.csrq;
m_bjmc=studentData.bjmc;
UpdateData(false);
//设置指针移动按钮有效性
SetNavigatorButton(m_iCurPos);
将指针移向前移动
OnBtnprior()
m_iCurPos--;
POSITIONpos=m_lstStudent.FindIndex(m_iCurPos);
CStudentDatastudentData=m_lstStudent.GetAt(pos);
将指针向后移动
OnBtnnext()
m_iCurPos++;
将指针移到尾部
OnBtnlast()
CStudentDatastudentData=m_lstStudent.GetTail();
m_iCurPos=m_lstStudent.GetCount()-1;
10.添加“添加”、“编辑”、“恢复”、“保存”、“删除”按钮的单击事件代码。
其中”Add”、”Edit”、”Cancel”、”Save”、”Delete”按钮的单击事件实现代码如下:
添加新记录
OnBtnadd()
m_operID=0;
//表示添加操作
m_xsbh=_T("
"
m_xsxm=_T("
m_xsxb=_T("
m_csrq=_T("
m_bjmc=_T("
UpdateData(FALSE);
SetControlEnable(TRUE);
编辑旧记录
OnBtnedit()
if(m_lstStudent.IsEmpty())
AfxMessageBox(_T("
NorecordcanbeEdited!
));
return;
m_operID=1;
//表示编辑操作
保存修改或添加
OnBtnsave()
CStudentDatastudentData;
CFilestuFile;
UpdateData(TRUE);
switch(m_operID)
case0:
/*添加操作*/
/*将添加的东西写入文件*/
ZeroMemory(&
studentData,sizeof(studentData));
wcscpy(studentData.xsbh,m_xsbh);
wcscpy(studentData.xsxm,m_xsxm);
wcscpy(studentData.xb,m_xsxb);
wcscpy(studentData.csrq,m_csrq);
wcscpy(studentData.bjmc,m_bjmc);
stuFile.Open(STUDENTFILEPATH,CFile:
modeRead|CFile:
modeWrite);
stuFile.SeekToEnd();
stuFile.Write(&
stuFile.Close();
//更新内存队列
m_lstStudent.AddTail(studentData);
SetControlEnable(FALSE);
//设置指针移动按钮有效性
m_iCurPos=m_lstStudent.GetCount()-1;
break;
case1:
/*编辑操作*/
stuFile.Seek(sizeof(studentData)*(m_iCurPos),CFile:
begin);
m_lstStudent.SetAt(m_lstStudent.FindIndex(m_iCurPos),studentData);
SetControlEnable(FALSE);
}
取消修改或添加
OnBtncancel()
SetControlEnable(FALSE);
SetNavigatorButto
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 步骤