编辑框、列表框和组合框实验报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void CAaaDlg::OnDestroy()
{
CDialog::OnDestroy();
// TODO: Add your message handler code here
for(int nIndex=m_ltBox.GetCount()-1;nIndex>=0;nIndex--)
{
delete (CStudentRec*)m_ltBox.GetItemDataPtr(nIndex);
表T10.1学生成绩对话框添加的控件
添加的控件
ID标识符
标题
其他属性
编辑框
IDC_EDIT_NAME
—
默认
组合框
IDC_COMBO_NO
—
默认
编辑框
IDC_EDIT_S1
—
默认
旋转按钮控件
IDC_SPIN_S1
—
自动结伴,设置结伴整数,靠右排列
编辑框
IDC_EDIT_S2
—
默认
旋转按钮控件
IDC_SPIN_S2
(4)打开MFC ClassWizrd对话框,切换到Member Variable页面,确定Class name中是否已选择了CEx_InputDlg,选中所需的控件ID标识符,双击鼠标或单击Add Variables按钮,依次按表T10.2所列的按钮件增加成员变量。
表T10.2控件变量
控件ID标识符
m_ltBox.DeleteString(nIndex);
}else
GetDlgItem(IDC_BUTTON_DEL)->EnableWindow(FALSE);
}
(4)用MFC ClassWizard在CEx_InputDlg类中映射IDC_LIST1列表框控件的LBN_SELCHANGE消息,并添加下列代码:
str.Format ("%15s%10s%6.1f%6.1f%6.1f",m_strName,m_strNo,
m_fScore1,m_fScore2,m_fScore3);
CStudentRec*rec=new CStudentRec(m_strName,m_strNo,
m_fScore1,m_fScore2,m_fScore3);
{
strName=name;
strID=id;
fScore[0]=s1;fScore[1]=s2;fScore[3]=s3;
}
CStudentRec(){};
~CStudentRec(){};
CString strName;
CString strID;
float fScore[3];
};
(2)用MFC ClassWizard在CEx_InputDlg类中映射IDC_BUTTON_ADD按钮控件的BN_CLICKED消息,并添加下列代码:
m_spinS2.SetRange (0,100);
m_spinS3.SetRange (0,100);
CString str;
for(int i=1;i<=50;i++)
{
str.Format ("210501%02d",i);
m_cbNo.InsertString(i-1,str);
}
m_cbNo.SetCurSel (0);
实验步骤:
1.创建工作文件夹
2.设计学生成绩对话框
(1)在打开的对话框资源模板中,将对话框的标题属性改为“学生成绩管理”,删除“TODO:...”静态按钮和“取消”按钮,并将“确定”按钮的标题属性改为“退出”。
(2)显示对话框网格,调整对话框的大小,按图T10.2所示的控件布局,向对话框添加控件,并调整控件的位置(在调整静态文本时,选中后按两次向下方向键,以使静态文本处在右边控件的中间)。
}
}
(6)编译运行并测试。
void CAaaDlg::OnSelchangeList1()
{
// TODO: Add your control notification handler code here
int nIndex=m_ltBox.GetCurSel();
if(nIndex!=LB_ERR)
{
GetDlgItem(IDC_BUTTON_DEL)->EnableWindow(TRUE);
m_fScore3=data.fScore[2];
UpdateData(FALSE);
}else
GetDlgItem(IDC_BUTTON_DEL)->EnableWindow(FALSE);
}
(5)用MFC ClassWizard在CEx_InputDlg类中映射WM_DESTROY窗口消息,并添加下列代码:
void CAaaDlg::OnButtonAdd()
{
UpdateData();
m_strName.TrimLeft ();
m_strName.TrimRight ();
if(m_strName.IsEmpty ())
{
MessageBox("姓名不能为空!","提示");
return;
}
CString str;
m_spinS2
—
IDC_EDIT_S3
Value
float
m_fScore
0.0~100.0
IDC_SPIN_S3
Control
CSpinButtonCtrl
m_spinS3
—
(5)在CE_InputDlg::OnInitDialog中添加代码:
m_spinS1.SetRange (0,100);
{
// TODO: Add your control notification handler code here
int nIndex=m_ltBox.GetCurSel();
if(nIndex!=LB_ERR)
{
delete (CStudentRec*)m_ltBox.GetItemDataPtr(nIndex);
—
自动结伴,设置结伴整数,靠右排列
编辑框
IDC_EDIT_S3
—
默认
旋转按钮控件
IDC_SPIN_S3
—
自动结伴,设置结伴整数,靠右排列
列表框
IDC_LLIST1
—
默认
按钮
IDC_BUTTON_ADD
—
默认
按钮
IDC_BUTTON_DEL
—
Disable
(3)测试对话框,查看编辑框和旋转按钮是否合二为一(结伴)。若不是,则改变并使他们的Tab次序相邻,且编辑框的Tab次序在先。
变量类别
变量类型
变量名
范围和大小
IDC_EDIT_NAME
Value
CString
m_strName
20
IDC_COMBO_NO
Value
CString
m_strNo
20
IDC_COMBO_NO
Control
CComboBox
m_cbNo
—
IDC_LIST1
Control
CListBox
m_ltBox
int nIndex=m_ltBox.AddString (str);
m_ltBox.SetItemDataPtr (nIndex,rec);
}
(3)用MFC ClassWizard在CEx_InputDlg类中映射IDC_BUTTON_DEL按钮按件的BN_CLICKED消息,并添加下列代码:
void CAaaDlg::OnButtonDel()
实验(实习)报告
实验(实习)名称编辑框、列表框和组合框日期5.15得分指导教师
院计算机与软件学院专业计算机科学与技术年级2011班次姓名学号
实验内容:
设计一个学生成绩管理对话框应用程序Ex_Input,如图T10.1所示,单击“添加”按钮后,学生成绩记录被添加到列表中,在列表框中单击学生成绩记录则在相关记录内容显示在左边的相关控件中,单击“删除”按钮,则删除该记录。需要说明的是,当列表框没有记录或没有选定的记录时,“删除”按钮是灰显的。
(6)编译运行。
3.完善代码
(1)在Ex_InputDlg.h文件的clss CEx_InputDlg:public CDialog语句前面添加下列CStudentRec类代码:
class CStudentRec
{
public:
CStudentRec(CString name,CString id,float s1,float s2,float s3)
—
IDC_EDIT_S1
Value
float
m_fScore
0.0~100.0
IDC_SPIN_S1
Control
CSpinButtonCtrl
m_spinS1
—
IDC_EDIT_S2
Value
float
m_fScore
0.0~100.0
IDC_SPIN_S2
Control百度文库
CSpinButtonCtrl
CStudentRec data;
data=*(CStudentRec*)m_ltBox.GetItemDataPtr(nIndex);
m_strName=data.strName;
m_strNo=data.strID;
m_fScore1=data.fScore[0];
m_fScore2=data.fScore[1];
{
CDialog::OnDestroy();
// TODO: Add your message handler code here
for(int nIndex=m_ltBox.GetCount()-1;nIndex>=0;nIndex--)
{
delete (CStudentRec*)m_ltBox.GetItemDataPtr(nIndex);
表T10.1学生成绩对话框添加的控件
添加的控件
ID标识符
标题
其他属性
编辑框
IDC_EDIT_NAME
—
默认
组合框
IDC_COMBO_NO
—
默认
编辑框
IDC_EDIT_S1
—
默认
旋转按钮控件
IDC_SPIN_S1
—
自动结伴,设置结伴整数,靠右排列
编辑框
IDC_EDIT_S2
—
默认
旋转按钮控件
IDC_SPIN_S2
(4)打开MFC ClassWizrd对话框,切换到Member Variable页面,确定Class name中是否已选择了CEx_InputDlg,选中所需的控件ID标识符,双击鼠标或单击Add Variables按钮,依次按表T10.2所列的按钮件增加成员变量。
表T10.2控件变量
控件ID标识符
m_ltBox.DeleteString(nIndex);
}else
GetDlgItem(IDC_BUTTON_DEL)->EnableWindow(FALSE);
}
(4)用MFC ClassWizard在CEx_InputDlg类中映射IDC_LIST1列表框控件的LBN_SELCHANGE消息,并添加下列代码:
str.Format ("%15s%10s%6.1f%6.1f%6.1f",m_strName,m_strNo,
m_fScore1,m_fScore2,m_fScore3);
CStudentRec*rec=new CStudentRec(m_strName,m_strNo,
m_fScore1,m_fScore2,m_fScore3);
{
strName=name;
strID=id;
fScore[0]=s1;fScore[1]=s2;fScore[3]=s3;
}
CStudentRec(){};
~CStudentRec(){};
CString strName;
CString strID;
float fScore[3];
};
(2)用MFC ClassWizard在CEx_InputDlg类中映射IDC_BUTTON_ADD按钮控件的BN_CLICKED消息,并添加下列代码:
m_spinS2.SetRange (0,100);
m_spinS3.SetRange (0,100);
CString str;
for(int i=1;i<=50;i++)
{
str.Format ("210501%02d",i);
m_cbNo.InsertString(i-1,str);
}
m_cbNo.SetCurSel (0);
实验步骤:
1.创建工作文件夹
2.设计学生成绩对话框
(1)在打开的对话框资源模板中,将对话框的标题属性改为“学生成绩管理”,删除“TODO:...”静态按钮和“取消”按钮,并将“确定”按钮的标题属性改为“退出”。
(2)显示对话框网格,调整对话框的大小,按图T10.2所示的控件布局,向对话框添加控件,并调整控件的位置(在调整静态文本时,选中后按两次向下方向键,以使静态文本处在右边控件的中间)。
}
}
(6)编译运行并测试。
void CAaaDlg::OnSelchangeList1()
{
// TODO: Add your control notification handler code here
int nIndex=m_ltBox.GetCurSel();
if(nIndex!=LB_ERR)
{
GetDlgItem(IDC_BUTTON_DEL)->EnableWindow(TRUE);
m_fScore3=data.fScore[2];
UpdateData(FALSE);
}else
GetDlgItem(IDC_BUTTON_DEL)->EnableWindow(FALSE);
}
(5)用MFC ClassWizard在CEx_InputDlg类中映射WM_DESTROY窗口消息,并添加下列代码:
void CAaaDlg::OnButtonAdd()
{
UpdateData();
m_strName.TrimLeft ();
m_strName.TrimRight ();
if(m_strName.IsEmpty ())
{
MessageBox("姓名不能为空!","提示");
return;
}
CString str;
m_spinS2
—
IDC_EDIT_S3
Value
float
m_fScore
0.0~100.0
IDC_SPIN_S3
Control
CSpinButtonCtrl
m_spinS3
—
(5)在CE_InputDlg::OnInitDialog中添加代码:
m_spinS1.SetRange (0,100);
{
// TODO: Add your control notification handler code here
int nIndex=m_ltBox.GetCurSel();
if(nIndex!=LB_ERR)
{
delete (CStudentRec*)m_ltBox.GetItemDataPtr(nIndex);
—
自动结伴,设置结伴整数,靠右排列
编辑框
IDC_EDIT_S3
—
默认
旋转按钮控件
IDC_SPIN_S3
—
自动结伴,设置结伴整数,靠右排列
列表框
IDC_LLIST1
—
默认
按钮
IDC_BUTTON_ADD
—
默认
按钮
IDC_BUTTON_DEL
—
Disable
(3)测试对话框,查看编辑框和旋转按钮是否合二为一(结伴)。若不是,则改变并使他们的Tab次序相邻,且编辑框的Tab次序在先。
变量类别
变量类型
变量名
范围和大小
IDC_EDIT_NAME
Value
CString
m_strName
20
IDC_COMBO_NO
Value
CString
m_strNo
20
IDC_COMBO_NO
Control
CComboBox
m_cbNo
—
IDC_LIST1
Control
CListBox
m_ltBox
int nIndex=m_ltBox.AddString (str);
m_ltBox.SetItemDataPtr (nIndex,rec);
}
(3)用MFC ClassWizard在CEx_InputDlg类中映射IDC_BUTTON_DEL按钮按件的BN_CLICKED消息,并添加下列代码:
void CAaaDlg::OnButtonDel()
实验(实习)报告
实验(实习)名称编辑框、列表框和组合框日期5.15得分指导教师
院计算机与软件学院专业计算机科学与技术年级2011班次姓名学号
实验内容:
设计一个学生成绩管理对话框应用程序Ex_Input,如图T10.1所示,单击“添加”按钮后,学生成绩记录被添加到列表中,在列表框中单击学生成绩记录则在相关记录内容显示在左边的相关控件中,单击“删除”按钮,则删除该记录。需要说明的是,当列表框没有记录或没有选定的记录时,“删除”按钮是灰显的。
(6)编译运行。
3.完善代码
(1)在Ex_InputDlg.h文件的clss CEx_InputDlg:public CDialog语句前面添加下列CStudentRec类代码:
class CStudentRec
{
public:
CStudentRec(CString name,CString id,float s1,float s2,float s3)
—
IDC_EDIT_S1
Value
float
m_fScore
0.0~100.0
IDC_SPIN_S1
Control
CSpinButtonCtrl
m_spinS1
—
IDC_EDIT_S2
Value
float
m_fScore
0.0~100.0
IDC_SPIN_S2
Control百度文库
CSpinButtonCtrl
CStudentRec data;
data=*(CStudentRec*)m_ltBox.GetItemDataPtr(nIndex);
m_strName=data.strName;
m_strNo=data.strID;
m_fScore1=data.fScore[0];
m_fScore2=data.fScore[1];