大学计算机C++实验四总结报告Word格式文档下载.docx
- 文档编号:8202426
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:21
- 大小:88.19KB
大学计算机C++实验四总结报告Word格式文档下载.docx
《大学计算机C++实验四总结报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《大学计算机C++实验四总结报告Word格式文档下载.docx(21页珍藏版)》请在冰点文库上搜索。
标题
其他属性
编辑框(课程号)
IDC_EDIT_COURSENO
——
默认
编辑框(课程名称)
IDC_EDIT_COURSENAME
组合框(所属专业)
IDC_COMBO_SPECIAL
组合框(课程类型)
IDC_COMBO_TYPE
编辑框(开课学期)
IDC_EDIT_OPEN
旋转按钮
IDC_SPIN1
Autobuddy、Setbuddyinteger、Right对齐,其余默认
编辑框(课时数)
IDC_EDIT_COURSEHOURS
编辑框(学分)
IDC_EDIT_CREDIT
⑤右击添加的课程类型的组合框控件,从弹出的快捷菜单中选择“属性”命令,将其属性对话框切换到Data页面,直接输入内容,输入一行后按Ctrl+回车键添加另一行。
同样对另一个组合框控件也进行修改。
结果如图2.3所示。
图2.3课程类型组合框内容输入
⑥按Ctrl+W快捷键或双击对话框资源模板的空白处,为IDD_COURSE创建一个对话框CCourseDlg。
打开ClassWizard的MemberVariables页面,看Classname是否是CCourseDlg,选中所需的控件ID号,双击鼠标。
依次为表2.2控件增加成员变量。
表2.2控件变量
控件ID号
变量类别
变量类型
变量名
范围和大小
Value
CString
m_strNO
m_strName
m_strSpecial
Control
CComboBox
m_comboSpecial
m_strType
BYTE
m_nOpen
CSpinButtonCtrl
m_spinOpen
int
m_nHours
float
m_fCredit
4.添加CCourseDlg类代码
①用MFCClassWizard为CCourseDlg类添加WM_INITDIALOG消息映射,并添加下列初始化代码:
BOOLCCourseDlg:
:
OnInitDialog()
{
CDialog:
OnInitDialog();
m_spinOpen.SetRange(1,8);
m_nHours=60;
m_fCredit=2.0;
m_nOpen=1;
m_strType="
专修"
;
m_strSpecial="
机械工程及其自动化"
//有改动
UpdateData(FALSE);
returnTRUE;
//returnTRUEunlessyousetthefocustoacontrol
}
②用MFCClassWizard为按钮IDOK添加BN_CLICKED的消息映射,并增加下列代码:
voidCCourseDlg:
OnOK()
UpdateData();
m_strNO.TrimLeft();
if(m_strNO.IsEmpty()){
MessageBox("
课程号不能为空!
"
);
return;
}
m_strName.TrimLeft();
if(m_strName.IsEmpty()){
课程名称不能为空!
CDialog:
OnOK();
5.添加CEx_CtrlsDlg程序代码
①按Ctrl+W快捷键,打开MFCClassWizard对话框,为列表框控件IDC_LIST1添加控件变量m_List,类型为CListBox。
②用MFCClassWizard为按钮IDC_BUTTON_COURSE添加BN_CLICKED消息映射,并添加下列代码:
voidCEx_CtrlsDlg:
OnButtonCourse()
CCourseDlgdlg;
if(IDOK!
=dlg.DoModal())return;
//清除列表框原来的显示内容
while(m_List.GetCount()!
=0)m_List.DeleteString(0);
m_List.AddString("
课程号:
+dlg.m_strNO);
课程名称:
+dlg.m_strName);
所属专业:
+dlg.m_strSpecial);
课程类型:
+dlg.m_strType);
CStringstr;
str.Format("
开课学期:
%d"
dlg.m_nOpen);
m_List.AddString(str);
课时数:
dlg.m_nHours);
学分:
%3.1f"
dlg.m_fCredit);
③在Ex_CtrlsDlg.cpp文件的前面添加CInputDlg的头文件包含:
#include"
Ex_CtrlsDlg.h"
CourseDlg.h"
//在“工程”—》“设置”常规选项里,选择使用MFC作为静态链接库
④编译运行并测试。
6.写出实验报告
分析上述运行结果以及思考与练习,写出实验报告。
思考与练习
(1)为CCourseDlg类添加一个公有型CString成员变量m_strOKText,当通过CCourseDlg类对象将m_strOKText设为“修改”,CCourseDlg对话框中的“添加”按钮标题变成“修改”,试编程实现。
(2)由于每学期的一门课程学分一般不超过6个学分,因此若将学分编辑框改为组合框,应如何修改和编程?
实验十一常用控件
(2)
(1)设计一个如图3.1所示的“学生基本信息”对话框。
(2)在实验2的基础上,实现功能:
在图2.1中的“课程信息”按钮下方添加一个“学生基本信息”按钮,单击该按钮,弹出“学生基本信息”对话框,单击“添加”按钮,学生基本信息显示在列表框中。
(3)在CEx_CtrlsDlg对话框中添加一个滚动条和两个滑动条来调整对话框的背景颜色的3个分量:
R(红色分量)、G(绿色分量)和B(蓝色分量),结果如图3.2所示。
图3.1“学生基本信息”对话框图3.2设置对话框背景颜色
滚动条、进展条、滑动条、时间和日历控件。
(2)创建本次实验工作文件夹“…\VisualC++程序\实验\实验3”。
1.在实验3的工作文件夹中复制Ex_Ctrls文件夹
将本书实验2中的Ex_Ctrls文件夹复制到实验3的工作文件夹中。
2.启动VisualC++6.0
启动VisualC++6.0系统。
3.创建并添加“学生基本信息”对话框
①选择“文件”→“打开工作区”菜单,将“…\VisualC++程序\实验\实验3\Ex_Ctrls”文件夹中的Ex_Ctrls项目打开。
②添加一个新的对话框资源,将ID号改为IDD_INPUT,标题为“学生成绩输入”,将对话框字体改为“宋体,9号”。
将OK和Cancel按钮标题改为“确定”和“取消”。
③调整对话框的大小,将“确定”和“取消”按钮移至对话框的下方,然后显示对话框网格。
④参看图3.1,向对话框添加如表3.1所示的控件。
添加两个“单选按钮”
并在第一个按钮“男”的属性—》常规选项勾选“组”,并对第一个按钮增加成员变量int型m_bMale。
第二个按钮不用勾选和增加。
表3.1学生基本信息对话框添加的控件
编辑框
IDC_EDIT_NAME
IDC_EDIT_NO
IDC_EDIT_S1
旋转按钮控件
IDC_SPIN_S1
Autobuddy、Right对齐
IDC_EDIT_S2
IDC_SPIN_S2
Autobuddy、Setbuddyinteger、Right对齐
IDC_EDIT_S3
IDC_SPIN_S3
IDC_SPECIAL
Autobud0dy、Setbuddyinteger、Right对齐
⑤双击对话框模板空白处,为该对话框模板创建一个对话框类CInputDlg。
⑥在MFCClassWizard的MemberVariables页面中,确定Classname中是否已选择了CInputDlg,选中所需的控件ID号,双击鼠标或单击AddVariables按钮。
依次为表3.2控件增加成员变量。
表3.2控件变量
变量类别
变量类型
变量名
20
m_strNo
m_fScore1
0.0~100.0
m_spinScore1
m_fScore2
m_spinScore2
m_fScore3
CspinButtonCtrl
m_spinScore3
在MFCClassWizard的MesssageMaps页面中,为CInputDlg添加WM_INITDIALOG消息映射,并添加下列代码:
BOOLCInputDlg:
m_spinScore1.SetRange(0,100);
//设置旋转按钮控件范围
m_spinScore2.SetRange(0,100);
m_spinScore3.SetRange(0,100);
returnTRUE;
用MFCClassWizard为CInputDlg增加IDC_SPIN_S1控件的UDN_DELTAPOS消息映射,并添加下列代码:
voidCInputDlg:
OnDeltaposSpinS1(NMHDR*pNMHDR,LRESULT*pResult)
NM_UPDOWN*pNMUpDown=(NM_UPDOWN*)pNMHDR;
UpdateData(TRUE);
//将控件的内容保存到变量中
m_fScore1+=(float)pNMUpDown->
iDelta*0.5;
//将m_fScore1等定义为int型
if(m_fScore1<
0)m_fScore1=0;
if(m_fScore1>
100)m_fScore1=100;
//将变量的内容显示在控件中
*pResult=0;
打开IDD_EX_CTRLS_DIALOG对话框资源,在“课程信息”按钮下方添加一个“学生基本信息”按钮,并将ID号设为IDC_BUTTON_STUINFO。
用MFCClassWizard为按钮IDC_BUTTON_STUINFO添加BN_CLICKED消息映射,并添加下列代码:
OnButtonStuinfo()
CInputDlgdlg;
=0)
m_List.DeleteString(0);
CStringstrSex("
男"
if(dlg.m_bMale)strSex="
女"
姓名:
学号:
+dlg.m_strNo);
性别:
+strSex);
CStringstr;
//修改了接下来这三条语句
出生日期:
%d-%d-%d"
dlg.m_fScore1,dlg.m_fScore2,dlg.m_fScore3);
所学专业:
在Ex_CtrlsDlg.cpp文件的前面添加CStuInfoDlg类的头文件包含:
InputDlg.h"
编译运行并测试。
结果如图3.3所示。
图3.3学生基本信息添加后的结果
4.改变对话框背景颜色
①将项目工作区窗口切换到ResourceView页面,打开IDD_EX_CTRLS_DIALOG对话框资源。
②打开对话框网格,参看图3.2的控件布局,为对话框添加如表3.3所示的一些控件。
表3.3添加的控件
垂直滚动条
IDC_SCROLLBAR_RED
滑动条(绿色)
IDC_SLIDER_GREEN
方位为Vertical,其他默认
滑动条(蓝色)
IDC_SLIDER_BLUE
③用MFCClassWizard为表3.4控件添加成员变量。
表3.4控件变量
CScrollBar
m_scrollRed
CSliderCtrl
m_sliderGreen
m_nGreen
m_sliderBlue
m_nBlue
④为CEx_CtrlsDlg类添加两个成员变量,一个是int型m_nRed,用来设置颜色R、G、B中的红色分量,另一个是画刷CBrush类对象m_Brush,用来设置对话框背景所需要的画刷。
方法:
在Ex_CtrlsDlg.h头文件内找到相应位置按下图添加。
⑤在CEx_CtrlsDlg:
OnInitDialog函数中添加下列代码:
BOOLCEx_CtrlsDlg:
。
。
m_scrollRed.SetScrollRange(0,255);
m_sliderBlue.SetRange(0,255);
m_sliderGreen.SetRange(0,255);
//设置颜色调节范围
m_nBlue=m_nGreen=m_nRed=192;
//初始化对话框背景颜色
UpdateData(FALSE);
m_scrollRed.SetScrollPos(m_nRed);
⑥用MFCClassWizard为CEx_CtrlsDlg类映射WM_VSCROLL消息,并添加下列代码:
OnVScroll(UINTnSBCode,UINTnPos,CScrollBar*pScrollBar)
intnID=pScrollBar->
GetDlgCtrlID();
//获取对话框中控件ID号
if(nID==IDC_SCROLLBAR_RED){//或是滚动条产生的水平滚动消息
switch(nSBCode){
caseSB_LINEUP:
m_nRed--;
//单击滚动条向上箭头
break;
caseSB_LINEDOWN:
m_nRed++;
//单击滚动条向下箭头
caseSB_PAGEUP:
m_nRed-=10;
caseSB_PAGEDOWN:
m_nRed+=10;
caseSB_THUMBTRACK:
m_nRed=nPos;
}
if(m_nRed<
0)m_nRed=0;
if(m_nRed>
255)m_nRed=255;
m_scrollRed.SetScrollPos(m_nRed);
Invalidate();
//使对话框无效,强迫系统重绘对话框
OnVScroll(nSBCode,nPos,pScrollBar);
用MFCClassWizard为CEx_CtrlsDlg类映射WM_CTLCOLOR消息,并添加下列代码:
HBRUSHCEx_CtrlsDlg:
OnCtlColor(CDC*pDC,CWnd*pWnd,UINTnCtlColor)
//HBRUSHhbr=CDialog:
OnCtlColor(pDC,pWnd,nCtlColor);
COLORREFcolor=RGB(m_nRed,m_nGreen,m_nBlue);
m_Brush.Detach();
//使画刷和对象分离
m_Brush.CreateSolidBrush(color);
//创建颜色画刷
pDC->
SetBkColor(color);
//设置背景颜色
return(HBRUSH)m_Brush;
//返回画刷句柄,以便系统使此画刷绘制对话框
编译运行并测试。
5.写出实验报告
(1)若将控制绿色和蓝色颜色分量的滑动条全部换成滚动条,则代码应如何修改?
(2)若将CEx_CtrlsDlg对话框中的列表框换成静态文本,并用于显示信息,则应如何实现?
实验十二菜单、工具栏和状态栏
实验目的和内容
(1)创建一个单文档应用程序Ex_SDI。
在“查看”菜单下添加一个子菜单“鼠标位置”,ID为ID_VIEW_MOUSE,当选择该菜单命令后,鼠标当前的位置显示到状态栏上,同时该菜单项呈选中状态。
再次选
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学计算机 C+ 实验 总结报告