}
{ case SB_LINELEFT: m_nGoods3--;break; //单击滚动条左边箭头 }
case SB_LINERIGHT: m_nGoods3++;break; //单击滚动条左边箭头 case SB_PAGELEFT: m_nGoods3-=10;break; case SB_PAGERIGHT: m_nGoods3+=10;break; case SB_THUMBTRACK: m_nGoods3=nPos;break;
if(m_nGoods3<0) m_nGoods3=0; if(m_nGoods3>100) m_nGoods3=100; m_scroll2.SetScrollPos(m_nGoods3);
if(nID==IDC_SLIDER1) //或是滑动条的水平滚动消息 }
{ }
if(m_nGoods4<0) m_nGoods4=0; if(m_nGoods4>100) m_nGoods4=100; m_slider.SetPos(m_nGoods4);
UpdateData(FALSE); //将变量内容显示在控件中 Invalidate(); //是对话框无效,强迫系统重绘对话框 // TODO: Add your message handler code here and/or call default
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
switch(nSBCode)
{ case SB_LINELEFT: m_nGoods4--;break; }
case SB_LINERIGHT: m_nGoods4++;break; case SB_PAGELEFT: m_nGoods4-=10;break; case SB_PAGERIGHT: m_nGoods4+=10;break; case SB_THUMBTRACK: m_nGoods4=nPos;break;
5
8.在MFC ClassWizard的Message Maps页面中在Class name列表框中选择CMainFrame,在IDs列表中选择ID_DIALOG1,在Messages框中找到并选择COMMAND
添加的映射函数代码如下: void CMainFrame::OnDialog1() {
CZHMDlg dlg;
if(IDOK==dlg.DoModal()) {
//获取对话框数据 CString str;
str.Format(
dlg.m_strName, dlg.m_strNO, dlg.m_fGoods1,
dlg.m_nGoods2, dlg.m_nGoods3, dlg.m_nGoods4);
AfxMessageBox(str);
} }
9.为控件ID_OK添加映射函数,并添加下列代码: void CZHMDlg::OnOK() {
CString str,strctrl; str = 商店名称:
// TODO: Add your command handler code here
6
}
GetDlgItemText(IDC_EDIT_Name,strctrl); str = str+strctrl;
str = str+商店编号:
GetDlgItemText(IDC_EDIT_NO,strctrl); str = str+strctrl;
str = str+商品1营业额:
GetDlgItemText(IDC_EDIT_Goods1,strctrl); str = str+strctrl;
str = str+商品2营业额:
GetDlgItemText(IDC_EDIT_Goods2,strctrl); str = str+strctrl;
str = str+商品3营业额:
GetDlgItemText(IDC_ EDIT_Goods3,strctrl); str = str+strctrl;
str = str+商品4营业额:
GetDlgItemText(IDC_ EDIT_Goods4,strctrl); str = str+strctrl;
MessageBox(str,营业额// TODO: Add extra validation here
CDialog::OnOK();
10.在在文件MainFrm.cpp的前面添加CZHMDlg类的包含语句: #include #include
#include
7
#include .编译运行并测试。 三 运行结果的截图;
程序编译运行后单击菜单 “对话框”“商店日营业额输入”、工具栏中“
”,
即可弹出设计的对话框,对对话框进行编辑,单击确定,弹出输入信息窗口,如上图所示。
8
四 总结与心得:
这次的大作业是基于单文档的应用项目,设计一个商店日营业额输入的对话框。通过这次设计,我对于VC++面向对象程序设计有了更真切的体会。VC++引用了面向对象的设计方法,它将数据及处理数据的相应函数“封装”到一个类中。类是面向对象的程序设计的核心,它实际上是一种新的数据类型。在此次设计中,我首先就为单文档项目zhm新建了一个类CZHMDlg。我觉得,程序设计中,控件ID 号至为重要,相当于是控件的身份证,使数据一一对应寻址。有的控件还需要添加消息映射,并添加代码正确引用运行。
由于平时学习时一知半解的,在软件上操作的时候,遇到了很多的问题,比如对软件的操作不熟练,还有对类,结构映射函数都不太懂,然后一直出现问题,但是在解决问题的时候也学到了不少的东西。
在此次大作业的这段时间里,我认为收获还是很多的,不但进一步掌握了VC++的基础知识及一门专业仿真软件的基本操作,还提高了自己的设计能力及动手能力,同时对于VC++面向对象有了更深刻的体会。更多的是让我看清了自己,明白了凡事需要耐心,实践是检验学习的唯一标准。理论知识的不足在这次大作业中表现的很明显。这将有助于我今后的学习,端正自己的学习态度,从而更加努力的学习。总之,通过本次大作业不但让我又学到了一些知识,而且也提高了我的综合能力,也提升了我对于软件编程的学习兴趣。
9