




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Windows大作业报告课程名称:windows程序设计所属学院:计算机学院所属班级:软件113班所属组别:第二组指导老师:***2021年12月3日Windows大作业报告目录TOC\o"1-3"\h\u6752目录 126226一.作者信息 52090二.准备工作 5180851.建立工程 5163762.准备图片 657983.添加位图 726587三.设计钟表和电子钟 9237901.创立对话框CMyDialog1 9190222.设计CMyDialog1 9185133.关联变量 12143574.添加成员变量 14140354.添加静态成员变量 15282005.初始化静态成员变量: 1552336.添加消息处理函数 16184127.编写CMyDialog1::OnButton2()消息处理函数: 17227638.编写CMyDialog1::OnButton3()消息处理函数: 1721229.编写CMyDialog1::OnButton4()消息处理函数: 172586710.编写CMyDialog1::OnButton5()消息处理函数: 18624111.编写CMyDialog1::OnButton6()消息处理函数: 181715312.编写CMyDialog1::OnButton7()消息处理函数: 182071313.编写CMyDialog1::OnCancel()消息处理函数: 191095714.编写CMyDialog1::OnOK()消息处理函数: 191932415.编写CMyDialog1::OnPaint()消息处理函数: 192939116.编写CMyDialog1::OnTimer()消息处理函数: 242544217.编写CMyDialog1::OnInitDialog()消息处理函数: 24561818.编写CMyDialog1::OnRadio1()消息处理函数: 25245919.编写CMyDialog1::OnRadio2()消息处理函数: 25103420.编写CMyDialog1::OnButton1()消息处理函数 252820421.添加头文件 2522118四.设计计算器的出错提示 26207451.创立对话框CMyDialog0 2645112.设计CMyDialog0 2679473.创立新类 2710026五.设计计算器 27255541.创立对话框CDialog2 27154212.设计CDialog2 2780713.关联变量 30104914.添加成员变量和静态成员变量 30183905.初始化静态成员变量和定义静态全局变量: 31312516.添加消息处理函数 31137257.编写CDialog2::OnButton1()的处理函数 33205268.编写CDialog2::OnButton0()的处理函数 3333579.编写CDialog2::OnButton10x()的处理函数 34508310.编写CDialog2::OnButton2()的处理函数 342373211.编写CDialog2::OnButton3()的处理函数 352710312.编写CDialog2::OnButton3x()的处理函数 352007413.编写CDialog2::OnButton4()的处理函数 362946314.编写CDialog2::OnButton5()的处理函数 362734715.编写CDialog2::OnButton6()的处理函数 373181816.编写CDialog2::OnButton7()的处理函数 37821117.编写CDialog2::OnButton8()的处理函数 38962618.编写CDialog2::OnButton9()的处理函数 38564819.编写CDialog2::OnButtonAcos()的处理函数 38165721.编写CDialog2::OnButtonAdd()的处理函数 392484722.编写CDialog2::OnButtonAsin()的处理函数 401492323.编写CDialog2::OnButtonAtan()的处理函数 412823624.编写CDialog2::OnButtonC()的处理函数 412537625.编写CDialog2::OnButtonCe()的处理函数 41878526.编写CDialog2::OnButtonCos()的处理函数 422333427.编写CDialog2::OnButtonCosh()的处理函数 43796528.编写CDialog2::OnButtonDe()的处理函数 432118929.编写CDialog2::OnButtonDiv()的处理函数 44622830.编写CDialog2::OnButtonEq()的处理函数 441856331.编写CDialog2::OnButtonExq()的处理函数 46359632.编写CDialog2::OnButtonInt()的处理函数 462896333.编写CDialog2::OnButtonLn()的处理函数 471919234.编写CDialog2::OnButtonLog()的处理函数 48655535.编写CDialog2::OnButtonM1()的处理函数 481049736.编写CDialog2::OnButtonM2()的处理函数 49660937.编写CDialog2::OnButtonMc()的处理函数 493060438.编写CDialog2::OnButtonMod()的处理函数 502618439.编写CDialog2::OnButtonMr()的处理函数 503097140.编写CDialog2::OnButtonMs()的处理函数 513141.编写CDialog2::OnButtonM1()的处理函数 512282842.编写CDialog2::OnButtonN()的处理函数 521588443.编写CDialog2::OnButtonPer()的处理函数 521971644.编写CDialog2::OnButtonPi()的处理函数 533232145.编写CDialog2::OnButtonRe()的处理函数 531927746.编写CDialog2::OnButtonSin()的处理函数 54418147.编写CDialog2::OnButtonSinh()的处理函数 55445348.编写CDialog2::OnButtonSqroot()的处理函数 552449549.编写CDialog2::OnButtonSu()的处理函数 563138250.编写CDialog2::OnButtonTan()的处理函数 562713551.编写CDialog2::OnButtonTanh()的处理函数 571000652.编写CDialog2::OnButtonX2()的处理函数 581095553.编写CDialog2::OnButtonX3()的处理函数 58613054.编写CDialog2::OnButtonXy()的处理函数 591129155.编写CDialog2::OnButtonYx()的处理函数 592034456.编写CDialog2::OnButtond()的处理函数 601171657.编写CDialog2::OnInitDialog()的处理函数 601686758.编写CDialog2::OnButtonFa()的处理函数 61817559.编写CDialog2::OnRadio3()的处理函数 617060.编写CDialog2::OnRadio4()的处理函数 622117961.编写CDialog2::OnRadio5()的处理函数 62616962.编写CDialog2::OnCtlColor()的处理函数 62313363.编写CDialog2::OnCancel()的处理函数 621325764.编写CDialog2::OnCancel()的处理函数 633254965.编写计算n!的函数 631158766.添加头文件 6312233六.设计日期和天数计算 6423801.创立对话框CDialog3 646252.设计CDialog3 64192373.关联变量 65176854.添加成员变量 66188965.添加消息处理函数 67225066.编写CDialog3::OnButtonCacl1()消息处理函数: 67155947.编写CDialog3::OnButtonCacl2()消息处理函数: 71295518.编写CDialog3::OnRadio1()消息处理函数: 7394739.编写CDialog3::OnRadio2()消息处理函数: 731635010.编写CDialog3::OnInitDialog()消息处理函数: 73505211.编写CDialog3::OnCancel()消息处理函数: 732078112.编写CDialog3::OnButton2()消息处理函数: 741495213.添加头文件 7429696七.设计作者信息 7465471.创立对话框CDialog4 74233522.设计CDialog4 75171213.添加消息处理函数 76314994.编写CDialog4:::OnCancel()消息处理函数: 7626186八.设计调用〔主目录〕 7614791.设置字体和标题 76282402.设计IDD_CWINDOWSDAZUOYE_DIALOG对话框 76244883.添加消息处理函数 77190534.编写CCWindowsDazuoyeDlg::OnButton1()消息处理函数: 78188325.编写CCWindowsDazuoyeDlg::OnButtonCacl()消息处理函数: 78202146.编写CCWindowsDazuoyeDlg::OnButton2()消息处理函数: 7819177.编写CCWindowsDazuoyeDlg::OnButton3()消息处理函数: 78223588.添加头文件 7916556九.运行程序〔局部截图〕 7924568十.程序调试及修改 8132347十一.总结 8117358十二.致谢 82一.作者信息所属学院:计算机学院所属专业:软件工程所属班级:软件113班指导老师:***课程名称:windows程序设计所属小组:软件113班第二组所属成员(学号+姓名)(按学号排序〕:**************************************************二.准备工作1.建立工程在VisualC++6.0中,选择“文件〞→“新建〞〔或者使用快捷键“ctrl+N〞→“工程〞→选定“MFCAppWizard(.exe)〞,输入工程名〔名字可以为任意名字,比方我们的工程名称为“CWindowsDazuoye〞〕(如图1所示〕〔也可以更改储存位置,比方我们的程序储存在“E:\编译\windows程序设计〞,也可以使用默认〕,点确定→选定根本对话框〔如图2所示〕,然后点完成.图1图22.准备图片把需要用的图片〔如zxgxy.bmp〔如图3所示〕和出错提示.bmp〔如图4所示〕〕放到新建工程产生的res文件中,需要的图片如图5所示图3zxgxy.bmp图4出错提示.bmp图5添加位图按“Ctrl+R〞〔或者选择“插入〞〔如图6所示〕→“资源〞〕,在弹出对话框选择“Bitmap〞〔或者切换到ResourceView页面,选定工程名〔如图7所示〕并右击,在弹出菜单中选定“插入〞在弹出对话框中选择“Bitmap〞〕,(如图8所示〕选择引入,浏览图片,找到图片所在位置,其中在“文件类型〞下拉框中选定“AllFlies(*.*)〞,否那么无法插入一些图片,并分别按顺序添加图片“〞(如图9所示〕和“出错提示.bmp〞,ID分别默认名为IDB_BITMAP1,IDB_BITMAP2〔可以修改ID名称,也可以使用默认,我们的程序使用的默认ID名)图6图7图8图9三.设计钟表和电子钟1.创立对话框CMyDialog1按“Ctrl+R〞〔或者选择〔或者选择“插入〞〔参照图6所示〕→“资源〞〕,在弹出对话框〔参照图8所示〕选择双击“Dialog〞〔或者切换到ResourceView页面,展开所有资源节点,单击Dialog〔如图10所示〕,在弹出对话框中选择“插入Dialog〞〕。并右击对话框修改其标题为“windows程序设计第二组钟表和电子钟显示〞,如图11所示图10图11设计CMyDialog1并按要求和表1、图12所示内容,向对话框模板中参加控件〔添加控件后,选定右击,在弹出的菜单中选择“属性〞,其中第一个静态文本如图13所示和第二个静态文本如图14所示的对话框,然后在第二个文本中可选择样式,并修改如图15所示,其它控件可按照以上操作进行添加,需注意的是修改控件ID为“IDC_COMBO1〞在数据中的输入列表工程中输入数据时,按住“ctrl+Enter〞组合键换行,并不是按住“Enter〞键换行,效果如图16所示〕图12表1控件属性控件类型ID标题其他属性静态文本默认电子钟显示:默认静态文本IDC_STATIC_CLOCK电子钟在样式中的排列文本下拉框中选定居中,并选中垂直居中,凹陷和边框静态文本IDC_STATIC_TITLE在样式中的排列文本下拉框中选定居中,并选中垂直居中,凹陷和边框属性分组框默认时区选择默认组合框IDC_COMBO1在样式中的类型本下拉框中选定简单,并去掉分类属性,在数据中的输入列表工程中输入“西十二区西十一区…零时区…东十二区〞分组框默认电子钟显示格式默认单项选择按钮IDC_RADIO124时默认单项选择按钮IDC_RADIO212时默认分组框默认改变颜色默认命令按钮IDC_BUTTON2对话框背景颜色默认命令按钮IDC_BUTTON3时针颜色默认命令按钮IDC_BUTTON4分针颜色默认命令按钮IDC_BUTTON5秒针颜色默认命令按钮IDC_BUTTON6电子钟背景颜色默认命令按钮IDC_BUTTON7电子钟字体颜色默认命令按钮IDC_BUTTON1作者信息默认命令按钮IDCANCEL返回主目录默认命令按钮IDOK结束程序默认图13图14图15图16关联变量单击对话框,按“Ctrl+W〞〔或者右击,在弹出的对话框中选择“建立类向导〞或者选择“查看〞→“建立类向导〞〕,在弹出的对话框〔如图17所示〕,选择“OK〞按钮,然后建立一个新类“CMyDialog1〞〔可以为任意名〕〔如图18所示〕,在弹出对话框中选择MemberVariables,并按表3.1.2所示关联变量图17图18表2CMyDialog1类的控件关联变量控件ID变量类型变量名IDC_COMBO1CComboBoxm_listBox4.添加成员变量切换到类视图页面,在“CMyDialog1〞单击〔如图19所示〕,选择“AddMemberVariables〞,并按表3所示添加类CMyDialog1成员变量图19表3CMyDialog1类成员变量变量类型变量名称访问权限BOOLm_pBoolProtected或者工程切换到工作区间,选择头文件中“CMyDialog1.h〞,在以下位置添加如下代码〔红色为新加代码〕:… //}}AFX_VIRTUAL BOOLm_pBool; //Generatedmessagemapfunctions…添加静态成员变量工程切换到工作区间,选择头文件中“CMyDialog1.h〞,在以下位置添加如下代码〔红色为新加代码〕:… //}}AFX_VIRTUALprotected: staticintm_DBkColor,m_HourColor,m_MinuteColor, m_SecondColor,m_BkFontColor,m_FontColor; BOOLm_pBool; //Generatedmessagemapfunctions…初始化静态成员变量:工程切换到工作区间,选择头文件中“CMyDialog1.cpp〞,在以下位置添加如下代码〔红色为新加代码〕初始化静态成员变量:…///////////////////////////////////////////////////////////////////////////////CMyDialog1dialog//初始化所有的颜色intCMyDialog1::m_DBkColor=int(RGB(255,100,100)),CMyDialog1::m_HourColor=int(RGB(0,0,255)),CMyDialog1::m_MinuteColor=int(RGB(0,255,0)), CMyDialog1::m_SecondColor=int(RGB(200,0,0)),CMyDialog1::m_BkFontColor=int(RGB(255,255,255)),CMyDialog1::m_FontColor=int(RGB(255,0,0));CMyDialog1::CMyDialog1(CWnd*pParent/*=NULL*/) :CDialog(CMyDialog1::IDD,pParent)…添加消息处理函数在类向导中按要求和表4CMyDialog1的控件通知消息处理函数添加消息处理函数〔如图20-1所示〕图20-1表4CMyDialog1的控件通知消息处理函数控件ID消息消息处理函数IDC_BUTTON2BN_CLICKED默认IDC_BUTTON3BN_CLICKED默认IDC_BUTTON4BN_CLICKED默认IDC_BUTTON5BN_CLICKED默认IDC_BUTTON6BN_CLICKED默认IDC_BUTTON7BN_CLICKED默认IDC_BUTTON1BN_CLICKED默认IDCANCELBN_CLICKED默认IDOKBN_CLICKED默认IDC_RADIO1BN_CLICKED默认IDC_RADIO2BN_CLICKED默认CMyDialog1WM_INITDIALOG默认CMyDialog1WM_PAINT默认CMyDialog1WM_CTLCOLOR默认CMyDialog1WM_TIMER默认编写CMyDialog1::OnButton2()消息处理函数:voidCMyDialog1::OnButton2(){ //TODO:Addyourcontrolnotificationhandlercodehere CColorDialogdlg; intnRect=dlg.DoModal(); if(nRect==IDOK) { m_DBkColor=dlg.GetColor(); }}编写CMyDialog1::OnButton3()消息处理函数:voidCMyDialog1::OnButton3(){ //TODO:Addyourcontrolnotificationhandlercodehere CColorDialogdlg; intnRect=dlg.DoModal(); if(nRect==IDOK) { m_HourColor=dlg.GetColor(); } }编写CMyDialog1::OnButton4()消息处理函数:voidCMyDialog1::OnButton4(){ //TODO:Addyourcontrolnotificationhandlercodehere CColorDialogdlg; intnRect=dlg.DoModal(); if(nRect==IDOK) { m_MinuteColor=dlg.GetColor(); } }编写CMyDialog1::OnButton5()消息处理函数:voidCMyDialog1::OnButton5(){ //TODO:Addyourcontrolnotificationhandlercodehere CColorDialogdlg; intnRect=dlg.DoModal(); if(nRect==IDOK) { m_SecondColor=dlg.GetColor(); } }编写CMyDialog1::OnButton6()消息处理函数:voidCMyDialog1::OnButton6(){ //TODO:Addyourcontrolnotificationhandlercodehere CColorDialogdlg; intnRect=dlg.DoModal(); if(nRect==IDOK) { m_BkFontColor=dlg.GetColor(); } }编写CMyDialog1::OnButton7()消息处理函数:voidCMyDialog1::OnButton7(){ //TODO:Addyourcontrolnotificationhandlercodehere CColorDialogdlg; intnRect=dlg.DoModal(); if(nRect==IDOK) { m_FontColor=dlg.GetColor(); } }编写CMyDialog1::OnCancel()消息处理函数:voidCMyDialog1::OnCancel(){ //TODO:Addextracleanuphere KillTimer(1);//移除定时器 CDialog::OnCancel(); CCWindowsDazuoyeDlgdlg; dlg.DoModal();}编写CMyDialog1::OnOK()消息处理函数:voidCMyDialog1::OnOK(){ //TODO:Addextravalidationhere KillTimer(1);//移除定时器 exit(0);//结束程序 CDialog::OnOK();}编写CMyDialog1::OnPaint()消息处理函数:voidCMyDialog1::OnPaint(){ CPaintDCdc(this);//devicecontextforpainting CDC*pDC=GetDC(); CBitmapbmp; //内存中存在临时图像的位图 CRectrect; GetClientRect(&rect);//获取客户区大小 CDCdcMem;//用于缓冲作图的内存 dcMem.CreateCompatibleDC(pDC); //依附窗口DC创立兼容DC bmp.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height()); dcMem.SelectObject(&bmp); //将位图选入内存 dcMem.FillSolidRect(rect,m_DBkColor);//按照原有背景色(或自己设置的背景色〕填充客户区 dcMem.SelectObject(&bmp); //将位图选入内存DC //绘图操作 staticconstdoublepi=3.141592635;//得到客户区的矩形 GetClientRect(&rect);//得到表盘中央位置,即圆心 intx0=rect.Width()/2;//得到对话框的宽 inty0=rect.Height()/2;//得到对话框的高 intr=(x0>y0?y0:x0);//得到半径〔以宽和高的最小值为半径〕 x0=r+55;//绘钟表图像距左边位置为55像素 CPenPen1; Pen1.CreatePen(PS_SOLID,1,RGB(255,100,0));//设置椭圆的颜色 dcMem.SelectObject(&Pen1); dcMem.Ellipse(CRect(x0-r,y0-r,x0+r,y0+r));//画最外侧的椭圆 dcMem.Ellipse(CRect(x0-r+6,y0-r+6,x0+r-6,y0+r-6));//画外侧的椭圆 dcMem.Ellipse(CRect(x0-r+35,y0-r+35,x0+r-35,y0+r-35));//画最内侧的椭圆 CPenPen2(PS_SOLID,3,RGB(0,0,255));//设置圆点的颜色 dcMem.SelectObject(Pen2);//设置椭圆的颜色 doublerate=(double)(2.0*pi/60.0);//分钟或秒针每分/秒走过角度大小,每刻度转过角度大小 doublehalfPi=pi/2;//将要在循环中重复的计算提取出来,减少时间复杂度 intzoomR=r-20;//绘制表盘//zoomR及对zoomR进行加或减操作主要是用来控制距离圆心的距离 dcMem.SetBkMode(TRANSPARENT); for(intmark=1;mark<=60;mark++) { intpositionX=(int)(zoomR*sin(rate*mark)+x0); intpositionY=(int)(-zoomR*sin(rate*mark+halfPi)+y0); if(mark%5==0)//绘制数值 { charnumber[2]; itoa(mark/5,number,10);//按照十进制转换 dcMem.TextOut(positionX-5,positionY-5,number); } else//绘制刻度 { dcMem.SetPixel(positionX,positionY,RGB(200,100,0)); dcMem.Ellipse(positionX-2,positionY-2,positionX+2,positionY+2); } } CTimetime=CTime::GetCurrentTime();//获取系统时间 inthour=time.GetHour();intminute=time.GetMinute();intsecond=time.GetSecond(); intyear=time.GetYear();intmonth=time.GetMonth();intday=time.GetDay(); intt=hour=(hour+m_listBox.GetCurSel()+4)%24; CStrings="";chara[2]; if(m_pBool&&t>12) t=hour-12; if(t==0&&m_pBool) t+=12; itoa(t,a,10); if(t<10) { s.Insert(s.GetLength(),"0"); s.Insert(s.GetLength(),a); } else s.Insert(s.GetLength(),a); s.Insert(s.GetLength(),":"); itoa(minute,a,10); if(minute<10) { s.Insert(s.GetLength(),"0"); s.Insert(s.GetLength(),a); } else s.Insert(s.GetLength(),a); s.Insert(s.GetLength(),":"); itoa(second,a,10); if(second<10) { s.Insert(s.GetLength(),"0"); s.Insert(s.GetLength(),a); } else s.Insert(s.GetLength(),a); if(m_pBool) { if(hour>=12) SetDlgItemText(IDC_STATIC_TITLE,"pm");//在名为IDC_curtime的控件里显示字符串str else SetDlgItemText(IDC_STATIC_TITLE,"am");//在名为IDC_curtime的控件里显示字符串str } else { SetDlgItemText(IDC_STATIC_TITLE,"");//在名为IDC_curtime的控件里显示字符串str } SetDlgItemText(IDC_STATIC_CLOCK,s);//在名为IDC_curtime的控件里显示字符串str doublehourRate=(double)(2.0*pi/12.0);//时钟每小时走过角度大小 if(hour>12)//假设时针超过12时 { hour-=12; } CPenhourPen(PS_SOLID,7,m_HourColor);//设置时针的颜色 dcMem.SelectObject(hourPen); dcMem.MoveTo(CPoint(x0,y0));//时针直线起始位置 inthourX=(int)((zoomR-110)*sin(hourRate*(hour+minute/60.0))+x0); inthourY=(int)(-(zoomR-110)*sin(hourRate*(hour+minute/60.0)+halfPi)+y0); dcMem.LineTo(CPoint(hourX,hourY));//时针直线结束位置 CPenminutePen(PS_SOLID,5,m_MinuteColor);//设置分针的颜色 dcMem.SelectObject(minutePen);//绘制分钟数指针 dcMem.MoveTo(CPoint(x0,y0));//分针直线起始位置 intminuteX=(int)((zoomR-70)*sin(rate*(minute+second/60.0))+x0); intminuteY=(int)(-(zoomR-70)*sin(rate*(minute+second/60.0)+halfPi)+y0); dcMem.LineTo(CPoint(minuteX,minuteY));//分针直线结束位置 CPensecondPen(PS_SOLID,2,m_SecondColor);//设置秒针的颜色 dcMem.SelectObject(secondPen);//绘制秒针 dcMem.MoveTo(CPoint(x0,y0));//秒针直线起始位置 intsecondX=(int)((zoomR-25)*sin(rate*second)+x0); intsecondY=(int)(-(zoomR-25)*sin(rate*second+halfPi)+y0); dcMem.LineTo(CPoint(secondX,secondY));//秒针直线结束位置 pDC->BitBlt(0,0,rect.Width(),rect.Height(), &dcMem,0,0,SRCCOPY); dcMem.DeleteDC(); //删除DC bmp.DeleteObject(); //删除位图 SetTimer(1,1000,NULL);//创立或设置一个定时器 //TODO:Addyourmessagehandlercodehere //DonotcallCDialog::OnPaint()forpaintingmessages}编写CMyDialog1::OnTimer()消息处理函数:voidCMyDialog1::OnTimer(UINTnIDEvent){ //TODO:Addyourmessagehandlercodehereand/orcalldefault Invalidate(FALSE); CDialog::OnTimer(nIDEvent);}HBRUSHCMyDialog1::OnCtlColor(CDC*pDC,CWnd*pWnd,UINTnCtlColor){ HBRUSHhbr=CDialog::OnCtlColor(pDC,pWnd,nCtlColor); if(pWnd->GetDlgCtrlID()==IDC_STATIC_CLOCK) { pDC->SetTextColor(m_FontColor);//用RGB宏改变颜色 HBRUSHb=CreateSolidBrush(m_BkFontColor);//控件背景色 pDC->SetBkColor(m_BkFontColor); returnb; } //TODO:ChangeanyattributesoftheDChere //TODO:Returnadifferentbrushifthedefaultisnotdesired returnhbr;}编写CMyDialog1::OnInitDialog()消息处理函数:BOOLCMyDialog1::OnInitDialog(){ CDialog::OnInitDialog(); //TODO:Addextrainitializationhere m_pBool=false; CheckRadioButton(IDC_RADIO1,IDC_RADIO2,IDC_RADIO1);//将OnRadio1(24时)设为选中状态 m_listBox.SetCurSel(20);//将组合框IDC_LIST1中“东八区〞设为选中状态 SetDlgItemText(IDC_STATIC_TITLE,"");//在名为IDC_curtime的控件里显示字符串str CButton*popenbtn=(CButton*)GetDlgItem(IDCANCEL); popenbtn->SetFocus();//设置按钮焦点在返回主目录上 returnFALSE;//returnTRUEunlessyousetthefocustoacontrol //EXCEPTION:OCXPropertyPagesshouldreturnFALSE}编写CMyDialog1::OnRadio1()消息处理函数:voidCMyDialog1::OnRadio1(){ //TODO:Addyourcontrolnotificationhandlercodehere m_pBool=false;}编写CMyDialog1::OnRadio2()消息处理函数:voidCMyDialog1::OnRadio2(){ //TODO:Addyourcontrolnotificationhandlercodehere m_pBool=true;}编写CMyDialog1::OnButton1()消息处理函数voidCMyDialog1::OnButton1(){ //TODO:Addyourcontrolnotificationhandlercodehere CDialog4dlg; dlg.DoModal();}添加头文件要想返回主目录、调用作者信息对话框和使用sin〔〕函数,需增加头文件;工程切换到工作区间,选择头文件中“CMyDialog1.cpp〞,在以下位置添加如下代码〔红色为新加代码〕:#include"stdafx.h"#include"CWindowsDazuoye.h"#include"CWindowsDazuoyeDlg.h"#include"MyDialog1.h"#include"Dialog4.h"//作者信息头文件,见对话框4#include<math.h>#ifdef_DEBUG#definenewDEBUG_NEW四.设计计算器的出错提示创立对话框CMyDialog0按“Ctrl+R〞〔或者选择“插入〞→“资源〞〕,在弹出对话框选择双击“Dialog〞〔或者切换到ResourceView页面,展开所有资源节点,单击Dialog,在弹出对话框中选择“插入Dialog〞〕。并右击对话框修改其标题为“windows程序设计第二组--计算器错误提示〞〔仿照三.1.创立对话框CMyDialog1步骤〕2.设计CMyDialog0删除该模板上除确定按钮以外的控件。并按要求和表5、图20-2所示内容,向对话框模板中参加控件〔参照三.2设计CMyDialog1的步骤,其中静态图片属性如图21所示〕图20-2表5控件属性控件类型ID标题其他属性分组框默认温馨提示:默认静态文本默认操作有误!默认静态图片默认在类型下拉框中选择位图,图像下拉框中选择IDB_BITMAP2命令按钮IDOK确定默认图213.创立新类单击对话框,按“Ctrl+W〞〔或者右击,在弹出的对话框中选择“建立类向导〞或者选择“查看〞→“建立类向导〞〕,在弹出的对话框〔如图16所示〕,选择“OK〞按钮,然后建立一个新类“CMyDialog0〞〔可以为任意名〕。〔仿照三.3.关联变量步骤〕五.设计计算器1.创立对话框CDialog2按“Ctrl+R〞〔或者选择“插入〞→“资源〞〕,在弹出对话框选择双击“Dialog〞〔或者切换到ResourceView页面,展开所有资源节点,单击Dialog,在弹出对话框中选择“插入Dialog〞〕。并右击对话框修改其标题为“windows程序设计第二组--计算器〞〔仿照三.1.创立对话框CMyDialog1步骤〕2.设计CDialog2并按要求和表6、图22所示内容,向对话框模板中参加控件。(参照三.2设计CMyDialog1的步骤〕图22表6控件属性控件类型ID标题其他属性编辑框IDC_EDIT1在样式中的排列文本下拉框中选定靠右,取消自动水平滚动,选定只读和边框属性静态文本IDC_STATIC_MS寄数器状态在样式中的排列文本下拉框中选定居中,选定垂直居中和边框属性分组框默认默认单项选择按钮IDC_RADIO3角度默认单项选择按钮IDC_RADIO4弧度默认单项选择按钮IDC_RADIO5梯度默认命令按钮IDC_BUTTON_M1M+默认命令按钮IDC_BUTTON_M2M-默认命令按钮IDC_BUTTON_MRMR默认命令按钮IDC_BUTTON_MSMS默认命令按钮IDC_BUTTON_SINHsinh默认命令按钮IDC_BUTTON_ASINasin默认命令按钮IDC_BUTTON_SINsin默认命令按钮IDC_BUTTON_DE←默认命令按钮IDC_BUTTON_CECE默认命令按钮IDC_BUTTON_CC默认命令按钮IDC_BUTTON_FA|x|默认命令按钮IDC_BUTTON_MCMC默认命令按钮IDC_BUTTON_COSHcosh默认命令按钮IDC_BUTTON_ACOSacos默认命令按钮IDC_BUTTON_COScos默认命令按钮IDC_BUTTON_77默认命令按钮IDC_BUTTON_88默认命令按钮IDC_BUTTON_99默认命令按钮IDC_BUTTON_DIV/默认命令按钮IDC_BUTTON_PER%默认命令按钮IDC_BUTTON_SU-默认命令按钮IDC_BUTTON_ATANatan默认命令按钮IDC_BUTTON_TANtan默认命令按钮IDC_BUTTON_44默认命令按钮IDC_BUTTON_55默认命令按钮IDC_BUTTON_66默认命令按钮IDC_BUTTON_MUL*默认命令按钮IDC_BUTTON_EQ=默认命令按钮IDC_BUTTON_LNln默认命令按钮IDC_BUTTON_EXPexp默认命令按钮IDC_BUTTON_LOGlg默认命令按钮IDC_BUTTON_11默认命令按钮IDC_BUTTON_22默认命令按钮IDC_BUTTON_33默认命令按钮IDC_BUTTON_Nn!默认命令按钮IDC_BUTTON_MOD取小数默认命令按钮IDC_BUTTON_INT取整默认命令按钮IDC_BUTTON_00默认命令按钮IDC_BUTTOND.默认命令按钮IDC_BUTTON_PIπ默认命令按钮IDC_BUTTON_ADD+默认命令按钮IDC_BUTTON_RE1/X默认命令按钮IDC_BUTTON_X2x^2默认命令按钮IDC_BUTTON_XYx^y默认命令按钮IDC_BUTTON_10X10^X默认命令按钮IDC_BUTTON_PIπ默认命令按钮IDC_BUTTON_X3x^3默认命令按钮IDC_BUTTON_SQROOT√x默认命令按钮IDC_BUTTON_3X3√x默认命令按钮IDC_BUTTON_YXy√x默认命令按钮IDOK结束程序默认命令按钮IDC_BUTTON作者信息默认命令按钮IDCANCEL返回主目录默认3.关联变量〔仿照三.3.关联变量步骤〕建立新类“CDialog2〞并按“表7CTestCtrl3Dlg类的控件关联变量〞关联变量表7CTestCtrl3Dlg类的控件关联变量控件ID变量类型变量名IDC_EDIT1CEditm_fEdit4.添加成员变量和静态成员变量〔仿照三.4.添加成员变量步骤和三.5.添加静态成员变量〕添加代码如下〔红色代码为新加代码〕:… DECLARE_MESSAGE_MAP()protected: staticdoubled_op1,d_op2;//两个double型操作数 staticcharch;//表示运算符 staticCStringstr1[2]; staticintpBool;//角度,弧度,梯度选择 CFontm_editFont;};//{{AFX_INSERT_LOCATION}}…5.初始化静态成员变量和定义静态全局变量:〔仿照三.5.初始化静态成员变量〕〔红色代码〕并定义静态全局变量〔蓝色代码〕…#endif///////////////////////////////////////////////////////////////////////////////CDialog2dialogintCDialog2::pBool=1;doublems;//ms操作保存的数intdi=0;//str中小数点个数标记π的取值CMyDialog0dlg0;//出错提示CStringCDialog2::str1[2];//字符串doubleCDialog2::d_op1,CDialog2::d_op2;//数值charCDialog2::ch='';//运算符初始化CDialog2::CDialog2(CWnd*pParent/*=NULL*/) :CDialog(CDialog2::IDD,pParent){…6.添加消息处理函数〔仿照三.6.添加消息处理函数〕并按照表8CDialog2的控件通知消息处理函数的要求表8CDialog2的控件通知消息处理函数控件ID消息消息处理函数IDC_RADIO3BN_CLICKED默认IDC_RADIO4BN_CLICKED默认IDC_RADIO5BN_CLICKED默认IDC_BUTTON_M1BN_CLICKED默认IDC_BUTTON_M2BN_CLICKED默认IDC_BUTTON_MRBN_CLICKED默认IDC_BUTTON_MSBN_CLICKED默认IDC_BUTTON_SINHBN_CLICKED默认IDC_BUTTON_ASINBN_CLICKED默认IDC_BUTTON_SINBN_CLICKED默认IDC_BUTTON_DEBN_CLICKED默认IDC_BUTTON_CEBN_CLICKED默认IDC_BUTTON_CBN_CLICKED默认IDC_BUTTON_FABN_CLICKED默认IDC_BUTTON_MCBN_CLICKED默认IDC_BUTTON_COSHBN_CLICKED默认IDC_BUTTON_ACOSBN_CLICKED默认IDC_BUTTON_COSBN_CLICKED默认IDC_BUTTON_7BN_CLICKED默认IDC_BUTTON_8BN_CLICKED默认IDC_BUTTON_9BN_CLICKED默认IDC_BUTTON_DIVBN_CLICKED默认IDC_BUTTON_PERBN_CLICKED默认IDC_BUTTON_SUBN_CLICKED默认IDC_BUTTON_ATANBN_CLICKED默认IDC_BUTTON_TANBN_CLICKED默认IDC_BUTTON_4BN_CLICKED默认IDC_BUTTON_5BN_CLICKED默认IDC_BUTTON_6BN_CLICKED默认IDC_BUTTON_MULBN_CLICKED默认IDC_BUTTON_EQBN_CLICKED默认IDC_BUTTON_LNBN_CLICKED默认IDC_BUTTON_EXPBN_CLICKED默认IDC_BUTTON_LOGBN_CLICKED默认IDC_BUTTON_1BN_CLICKED默认IDC_BUTTON_2BN_CLICKED默认IDC_BUTTON_3BN_CLICKED默认IDC_BUTTON_NBN_CLICKED默认IDC_BUTTON_MODBN_CLICKED默认IDC_BUTTON_INTBN_CLICKED默认IDC_BUTTON_0BN_CLICKED默认IDC_BUTTONDBN_CLICKED默认IDC_BUTTON_PIBN_CLICKED默认IDC_BUTTON_ADDBN_CLICKED默认IDC_BUTTON_REBN_CLICKED默认IDC_BUTTON_X2BN_CLICKED默认IDC_BUTTON_XYBN_CLICKED默认IDC_BUTTON_10XBN_CLICKED默认IDC_BUTTON_PIBN_CLICKED默认IDC_BUTTON_X3BN_CLICKED默认IDC_BUTTON_SQROOTBN_CLICKED默认IDC_BUTTON_3XBN_CLICKED默认IDC_BUTTON_YXBN_CLICKED默认IDOKBN_CLICKED默认IDC_BUTTONBN_CLICKED默认IDCANCELBN_CLICKED默认IDC_BUTTON_X3BN_CLICKED默认IDC_BUTTON_SQROOTBN_CLICKED默认CDialog2WM_INITDIALOG默认CDialog2WM_CTLCOLOR默认7.编写CDialog2::OnButton1()的处理函数voidCDialog2::OnButton1(){ //TODO:Addyourcontrolnotificationhandlercodehere if(str1[1]!="") if(str1[1].GetAt(0)=='0'&&str1[1].GetLength()==1) { str1[1]=""; str1[0]=str1[0].Left(str1[0].GetLength()-1);//截取零 } str1[1].Insert(str1[1].GetLength(),'1'); str1[0].Insert(str1[0].GetLength(),'1'); m_Edit.SetWindowText(str1[0]);}8.编写CDialog2::OnButton0()的处理函数voidCDialog2::OnButton0(){ //TODO:Addyourcontrolnotificationhandlercodehere if(str1[1]!="") if(str1[1].GetAt(0)=='0'&&str1[1].GetLength()==1) { str1[1]=""; str1[0]=str1[0].Left(str1[0].GetLength()-1);//截取零 } str1[1].Insert(str1[1].GetLength(),'0'); str1[0].Insert(str1[0].GetLength(),'0'); m_Edit.SetWindowText(str1[0]); }9.编写CDialog2::OnButton10x()的处理函数voidCDialog2::OnButton10x(){ //TODO:Addyourcontrolnotificationhandlercodehere if(ch!='') OnButtonEq(); else d_op1=atof(str1[1].GetBuffer(str1[1].GetLength())); intt=int(d_op1); if(d_op1!=t) { dlg0.DoModal(); return; } d_op1=1; for(inti=0;i<t;i++) d_op1=d_op1*10; str1[0].Format(_T("%18f"),d_op1); for(;str1[0].GetAt(str1[0].GetLength()-1)=='0';) str1[0]=str1[0].Left(str1[0].GetLength()-1); if(str1[0].GetAt(str1[0].GetLength()-1)=='.') str1[0]=str1[0].Left(str1[0].GetLength()-1); m_Edit.SetWindowText(str1[0]); str1[1]=str1[0]; ch=''; }10.编写CDialog2::OnButton2()的处理函数voidCDialog2::OnButton2(){ //TODO:Addyourcontrolnotificationhandlercodehere if(str1[1]!="") if(str1[1].GetAt(0)=='0'&&str1[1].GetLength()==1) { str1[1]=""; str1[0]=str1[0].Left(str1[0].GetLength()-1);//截取零 } str1[1].Insert(str1[1].GetLength(),'2'); str1[0].Insert(str1[0].GetLength(),'2'); m_Edit.SetWindowText(str1[0]); }11.编写CDialog2::OnButton3()的处理函数voidCDialog2::OnButton3(){ //TODO:Addyourcontrolnotificationhandlercodehere if(str1[1]!="") if(str1[1].GetAt(0)=='0'&&str1[1].GetLength()==1) { str1[1]=""; str1[0]=str1[0].Left(str1[
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年银行从业资产评估试题及答案
- 信息流在物流中的重要性与试题及答案
- 明晰思路:2024年证券从业资格考试试题及答案
- 动脉瘤栓塞术后的护理
- 如何制作网球教案
- 年度客户满意度提升计划
- 提升决策能力的训练计划
- 工作计划中应关注的关键绩效指标
- 班级鼓励机制的设计与实施计划
- 磨练意志与随遇而安的能力计划
- 2024年思政考试准备试题及答案
- 2024年娄底市公安局警务辅助人员招聘考试真题
- 总经理聘任合同模板7篇
- PLC应用技术课件 任务6. S7-1200 PLC控制电动机正反转
- 福建省龙岩市2024届高考一模地理试题(含答案)(含答案)
- 天津市和平区2023-2024学年八年级下学期期末物理试题【含答案、解析】
- 《教育强国建设规划纲要(2024-2035年)》解读与培训 (五)
- 浙江首考2025年1月普通高等学校招生全国统考化学试题及答案
- 《中医养生学》课件-八段锦
- 【2025年卫生健康宣传日】世界防治结核病日
- DBJ33T 1104-2022 建设工程监理工作标准
评论
0/150
提交评论