Vc++课程设计报告
- 格式:doc
- 大小:40.50 KB
- 文档页数:11
VC++程序设计课程设计报告书题目:绘图软件设计班级:学号:姓名:指导教师:周期:成绩:一、课程设计的目的与要求(一)课程设计目的与任务目的:根据自身对visual c++ 的学习,通过此次上机实践,加深对visual c++ 各类控件的知识。
充分了解各个控件之间的使用及数据的传递方法,根据所学习的类、变量、函数来完成一项简单的课程设计,实现画图软件的功能任务:使用visual c++.net完成所选择的课程设计的题目以及题目中所要求实现的相关功能与要求,并且通过本次的课程设计,让自己对visualc++ 有进一步的理(二)题目要求单文档应用程序,能够选择图形的类型(圆,矩形,直线,画笔),能够选择图形的颜色,能够对绘制的图形进行颜色填充,能够选择图形的线型(如实线,虚线),能够选择画线的颜色和线的宽度。
二、设计正文1 、系统分析对需要用到的变量进行初始化,选择相应的图形之后就响应相应的消息处理函数,赋对应的值。
选择不同的线宽,线色与填充色,鼠标的按下响应函数OnLButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标的拖动响函数OnMouseMove()改变终点的坐标,鼠标的弹起响应OnLButtonUp(),确定终点坐标,得到绘制图形。
2、功能详细描述及框图3、主要功能逻辑过程绘制图形: 鼠标左键按下,则捕获鼠标此时的位置坐标为画图的起点,此时在OnLButtonDown() 函数里,将捕获的坐标值赋给定义作为起点的变量;按下鼠标左键拖动鼠标时,捕捉鼠标当前位置坐标值为终点坐标值,此时在OnMouseMove()函数里,把捕获的坐标值赋给定义作为终点的变量,绘图代码中的坐标都得到了,进行绘图;鼠标左键弹起时,此时绘图结束,鼠标弹起时所在位置就是画图的最终终点位置,此时执行的是OnLButtonUp()函数主要算法:int CMy1109113112View::OnCreate(LPCREATESTRUCT lpCreateStruct){if (CView::OnCreate(lpCreateStruct) == -1)return -1;pdc=new CClientDC(this);color=RGB(0,0,0);tccolor=RGB(255,255,255);width=1;style=0;tcstyle=5;type=4;a=false;tc=false;return 0;}void CMy1109113112View::OnLButtonDown(UINT nFlags, CPoint point){p1=p2=point;pen.CreatePen(style,width,color);pdc->SelectObject(&pen);if(tc){bsh.CreateHatchBrush(6,tccolor);pdc->SelectObject(&bsh);}else{pdc->SelectStockObject(NULL_BRUSH);}pdc->SetROP2(R2_NOTXORPEN);a=true;CView::OnLButtonDown(nFlags, point);}void CMy1109113112View::OnLButtonUp(UINT nFlags, CPoint point) {pdc->SetROP2(R2_COPYPEN);if(type==1){pdc->MoveTo(p1.x,p1.y);pdc->LineTo(point.x,point.y);}else if(type==2){pdc->Ellipse(p1.x,p1.y,point.x,point.y);}else if(type==3){pdc->Rectangle(p1.x,p1.y,point.x,point.y);}else if(type==4){pdc->MoveTo(p1.x,p1.y);pdc->LineTo(point.x,point.y);}a=false;pen.DeleteObject();bsh.DeleteObject();}void CMy1109113112View::OnMouseMove(UINT nFlags, CPoint point) {if(!a)return;if(type==1){pdc->MoveTo(p1.x,p1.y);pdc->LineTo(p2.x,p2.y);p2=point;pdc->MoveTo(p1.x,p1.y);pdc->LineTo(p2.x,p2.y);}else if(type==2){pdc->Ellipse(p1.x,p1.y,p2.x,p2.y);p2=point;pdc->Ellipse(p1.x,p1.y,p2.x,p2.y);}else if(type==3){pdc->Rectangle(p1.x,p1.y,p2.x,p2.y);p2=point;pdc->Rectangle(p1.x,p1.y,p2.x,p2.y);}else if(type==4){p2=point;pdc->MoveTo(p1.x,p1.y);pdc->LineTo(p2.x,p2.y);p1=point;}CMainFrame *pFrame=(CMainFrame *)AfxGetApp()->m_pMainWnd;CStatusBar *pStatus=&pFrame->m_wndStatusBar;CString str;if(pStatus){str.Format(_T("X=%d"),point.x);pStatus->SetPaneText(4,str);str.Format(_T("Y=%d"),point.y);pStatus->SetPaneText(pStatus->CommandToIndex(IDS_Y),str);}CView::OnMouseMove(nFlags, point);}4、界面设计图一绘图类型菜单图二填充颜色菜单图三选择线型菜单图四工具栏菜单图五画图后界面5、系统测试进行非正常操作的模拟时,如鼠标乱点、乱画,绘制大量的图形等,会出现窗口,提示“Debug Asserttion Failled“,应操作慢一点或者在客户区进行。
v c 课程设计一、课程目标知识目标:1. 学生能够掌握维生素C的基本概念,了解其在人体健康中的作用及其食物来源。
2. 学生能够描述维生素C的化学性质,理解其在储存和烹饪过程中的变化。
3. 学生能够对比不同食物中维生素C含量的差异,并解释相关因素。
技能目标:1. 学生能够运用批判性思维,分析日常饮食中维生素C的摄入情况,提出合理搭配建议。
2. 学生通过实验操作,掌握测定食物中维生素C含量的基本方法,培养实验操作能力。
3. 学生能够运用所学知识,设计健康饮食宣传资料,提升信息整合与传达能力。
情感态度价值观目标:1. 学生培养对健康饮食的关注,认识到合理摄入维生素C的重要性,形成良好的饮食习惯。
2. 学生在小组合作中,学会倾听他人意见,尊重团队成果,培养合作精神。
3. 学生通过课程学习,增强关爱自己及他人健康的责任感,树立正确的健康观念。
本课程针对五年级学生设计,结合学科特点,以生活实际为切入点,注重知识与实践的结合。
通过课程学习,使学生不仅掌握维生素C的相关知识,还能将所学应用于实际生活中,提高学生的健康素养。
同时,关注学生个体差异,激发学习兴趣,培养科学精神和团队合作能力。
二、教学内容1. 维生素C的基本概念及其生理功能- 维生素C的化学性质与结构- 维生素C在人体内的作用机理- 维生素C的食物来源及其生物利用率2. 维生素C的食物含量与储存烹饪变化- 不同食物中维生素C含量的比较- 维生素C在储存和烹饪过程中的变化及影响因素- 如何减少维生素C的损失,保持食物营养价值3. 维生素C的摄入与评估- 评估学生日常饮食中维生素C的摄入情况- 提出合理搭配建议,优化饮食结构- 实验教学:测定食物中维生素C含量的基本方法4. 健康饮食宣传与教育- 设计健康饮食宣传资料,传播维生素C相关知识- 课堂讨论:如何提高公众对维生素C的认识和重视- 案例分析:探讨不良饮食习惯对健康的影响教学内容依据课程目标,结合教材相关章节进行编排。
《VC++课程设计》题目一:计算器学院:XXXXXXX班级:XXXXXXX学号:XXXXXXX姓名:XXXXXXX设计时间:XXXXXXX目录:1.需求分析--------------------------------------------- 12.课题设计内容--------------------------------------- 1(1)课程设计基本流程------------------------------------------ 1(2)详细设计说明------------------------------------------------ 2(3)设计流程图--------------------------------------------------- 13(4)主要程序------------------------------------------------------ 14(5)运行结果截图-----------------------------------------------3.得意之处--------------------------------------------- 144.设计实践过程中的收获与体会------------------ 145.设计目前存在的问题-------------------------- 156.主要参考文献--------------------------------------一、需求分析本课程主要是完成一个简单计算器的设计,要求用户在使用时可以准确显示整数及小数,并准确进行加、减、乘、除、幂运算,最后实现清零和退出。
二、课程设计内容1、课程设计基本流程:首先是进行MFC基本对话框的创建,然后设计界面,界面上包括数字按钮、等号按钮、小数点按钮、运算按钮、退出按钮、清零按钮和编辑框。
并对各个按钮和编辑框的地址、标题进行更改,绑定变量。
VisualC++课程设计报告圆心沿正弦曲线轨迹移动的实心圆设计一、设计任务※.选题意义此题选择意义在于设计一个MFC程序Visual C++环境中运行, 在在运行时屏幕上出现一个圆心沿一个正弦曲线轨迹移动的实心圆, 并且每隔1/8个圆周期, 圆的填充色和圆的周边颜色都发生变化, 颜色有我自己选取。
※.设计目标二、在Visual C++程序编写一个程序, 在程序运行时屏幕上出现一个圆沿正弦曲线移动, 并且当每隔1/8个圆周期时圆的填充色和周边颜色改变一次。
三、程序设计与实现※程序结构本课程设计的结构如图1:※.数据和函数功能描述——变量类型定义等说明变色功能圆心移动功能● 1.程序中的重要的函数和语句:OnDraw():●在它中添加了COLORRE颜色类型, CPoin点, CBrush Brush画刷, CPen pen画笔等。
两个for循环定义了正弦曲线。
●SetTimer(100,90,NULL)是时间函数的调用函数来控制圆在沿正弦曲线移动是圆中的颜色变化快慢。
●函数OnTimer():●For循环——实现实心圆移动●if语句——实现实心圆及其周边颜色变化●Invalidate()——刷新函数。
● 2.函数功能进行描述:OnDraw()——函数包括了坐标, 画正弦曲线, 画笔画刷画, 实心圆OnTimer()——函数定义一个变量进而使实心圆的移动, 定义另一个变量实现实心圆颜色每个1/8圆周期发生变化。
系统总体流程图如下:OnDraw()函数的流程图2:OnTimer()函数的流程图3:※.设计难点与解决方法设计难点:◆圆心需要沿着正弦曲线轨迹移动, 实心圆每隔1/8个圆周期, 圆的填充色和周边颜色都要变化。
◆关键是把圆沿正弦曲线运动时留下的影印阴影去掉如图4:◆去掉阴影后但无法使圆沿正弦曲线运动时圆内的颜色变化速率如图5:解决策略:通过定义一个变量将圆心定义在正弦曲线上, 定义时间函数使圆心移动, 定义画笔画圆, 画刷填充, 定义一个颜色数组使实心圆以及周边颜色每隔1/8圆周期发生变化。
vc课程设计一、教学目标本课程的教学目标是使学生掌握VC编程的基本概念、语法和编程技巧,培养学生独立编写简单程序的能力。
具体目标如下:1.知识目标:–掌握C++的基本语法和数据类型。
–理解函数的定义和调用。
–学习面向对象编程的基本概念,如类和对象、继承和多态。
–熟悉VC编程环境,了解常用的编译器和调试工具。
2.技能目标:–能够使用VC编写简单的输入输出程序。
–掌握函数的定义和调用,能编写含有多个函数的程序。
–能够使用面向对象编程的方法,编写简单的类和对象程序。
–熟练使用VC编译器和调试工具,能独立调试程序。
3.情感态度价值观目标:–培养学生对计算机科学的兴趣和热情,提高学生独立思考和解决问题的能力。
–培养学生团队合作的精神,学会与他人分享和交流学习经验。
二、教学内容本课程的教学内容主要包括VC编程的基本概念、语法和编程技巧。
具体安排如下:1.VC编程环境:介绍VC的安装和配置,熟悉VC集成开发环境的界面和功能。
2.C++基本语法:数据类型、变量、运算符、表达式、语句等。
3.函数:函数的定义、声明和调用,递归函数,内联函数等。
4.面向对象编程:类和对象、继承和多态、封装和抽象等。
5.输入输出操作:文件操作、屏幕输出和输入等。
6.调试技巧:编译和调试程序的方法,常见错误分析和解决。
三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:通过讲解和示范,使学生掌握VC编程的基本概念和语法。
2.案例分析法:通过分析典型案例,使学生理解和掌握面向对象编程的方法。
3.实验法:让学生动手编写程序,培养学生的实际编程能力和调试技巧。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用《VC编程入门》作为主要教材,辅助以相关参考书籍。
2.参考书:提供《C++ Primer》等参考书籍,供学生深入学习。
3.多媒体资料:制作PPT课件,演示程序实例和调试过程。
4.实验设备:配置计算机实验室,提供VC编译器和调试工具。
VC++课程设计报告一、课程设计的目的和要求:1、计算机科学与技术专业所开设的windows课程设计是教学实践环节中一项重要内容,进行此课程设计的旨在:提高和加强学生的计算机应用与软件开发能力,使生由初学者向专业的程序员过渡。
培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应计算机产业日新月异发展的形势。
学习和掌握windows程序设计方法以及上机调试技巧,为今后学习其它专业课程打好基础。
本次课程设计是以学生独立思考解决问题为主,教师指导为辅,结合上机操作,完成指定的任务,作出设计报告。
2、本课设题目及意义1、在现代社会中,我们会接触到很多的人,会和很多人联系。
亲人,同学,朋友,老师,同事等等……他们的联系方式会很难记忆,尤其是各种通讯方式和手段高度发达的今天,手机,qq邮箱,工作单位,等基本信息量大大增加。
通讯方式的多样性尤其增加儿了记忆的难度。
所以通讯录便在这种情况下在人们的日常生活中发挥着中要作用。
2、通讯录得功能如下:向前或向后浏览通讯录信息增加、修改和删除通讯录信息通过文件导入到出通讯录信息二、系统功能设计通讯录的功能要求中要用到对数据信息的操作:将通讯录得数据以某种形式存放,当需要时,可以通过载入来恢复数据。
目前数据存放主要有两种形式:文件和数据库。
两种方式各有特色:文件建档,容易操作,但安全性不高。
数据库相对来说操作及运行较为复杂,但安全性较高,较大型的信息管理系统一般都适用于这种数据存放方式。
本通讯录是基于单文档的采用文件的应用程序。
文档/视图结构是MFC中专门用于开发基于文档的应用程序的框架,在这个框架中,数据的维护及显示分别是由两个不同又彼此紧密相关的对象——文档和视图负责的。
另外,本程序的一大特色就是通过屏蔽当前无效的界面和信息提示来实现的了减少使用者的错误操作,提高了程序的可实用性。
三、文本档和视图及数据联系概况说明MFC应用程序中,文档视图结构用来将数据本身与数据的显示以及用户对数据的相互处理互相隔离。
vc 课程设计报告一、课程目标知识目标:1. 学生能理解并掌握维生素C的基本概念,包括其化学性质、生理功能以及在人体健康中的作用。
2. 学生能描述维生素C的食物来源,了解不同食物中维生素C的含量及保存方法。
3. 学生能解释维生素C缺乏症及其对人体健康的影响。
技能目标:1. 学生能够运用所学知识,分析日常饮食中维生素C的摄入情况,并提出合理膳食建议。
2. 学生能够运用实验方法,检测食物中维生素C的含量,掌握基本的实验操作技能。
3. 学生能够通过小组合作,收集资料、分析数据,形成对维生素C的科学认识。
情感态度价值观目标:1. 学生能够增强健康饮食意识,关注营养均衡,培养良好的饮食习惯。
2. 学生能够认识到科学探究的方法和重要性,培养科学思维和探究精神。
3. 学生能够关注食品安全问题,提高社会责任感和环保意识。
课程性质:本课程为自然科学类课程,结合学生实际生活,以维生素C为主题,开展跨学科教学。
学生特点:四年级学生具备一定的观察、分析和动手能力,对新鲜事物充满好奇心,喜欢探究性学习。
教学要求:注重理论与实践相结合,引导学生主动探究,培养其观察、分析和解决问题的能力。
在教学过程中,关注学生的个体差异,激发学生的学习兴趣,提高其科学素养。
通过本课程的学习,使学生形成对维生素C的科学认识,并将其应用于实际生活中。
二、教学内容1. 维生素C的基本概念:介绍维生素C的化学名称、分子结构、性质和分类。
- 教材章节:第三章第二节“维生素与矿物质”2. 维生素C的生理功能:讲解维生素C在人体内的作用,如抗氧化、促进铁吸收、合成胶原蛋白等。
- 教材章节:第三章第二节“维生素与矿物质”3. 维生素C的食物来源及含量:介绍富含维生素C的食物,以及不同食物中维生素C的含量和保存方法。
- 教材章节:第三章第三节“食物中的维生素与矿物质”4. 维生素C缺乏症及预防:讲解维生素C缺乏症的症状、原因和预防方法。
- 教材章节:第三章第四节“维生素与矿物质的缺乏与过量”5. 实验教学:开展维生素C含量检测实验,让学生了解实验原理、操作步骤和结果分析。
VC程序设计课程实验报告实验题目:使用几种常用资源班级生物医学08(1)班姓名张春香学号日期2011年6月19日一、需求分析(一)实验目的1.了解学会VC++ 6。
0 集成环境操作界面的使用2.使用MFC进行可视化的编程3.理解文档/视程序的结构,MFC消息映射机制,理解发送给窗口的消息是如何被MFC框架通过窗口句柄映射表和消息映射表来用窗口类的函数进行响应的。
4.了解CDocument类的串行化存储功能保存与加载数据和MFC框架程序的文档类和视类的关系5. 学会使用ClassWizard添加成员变量创建新的类和删除一个类和添加消息(二)实验内容和要求1. 如图编写一个对话框应用程序,a)单击按钮1时,按钮上的文字“Show1”现就变成“Show2”;参照书本实例228页例题9-5)。
如下图所示编写一个单文档(SDI)应用程序,对SDI的四个类CxxxApp,CxxxDoc,CxxxView,CMainFrame分别添加一个消息,模拟一下SDI的消息传递过程。
2. 编写一个单文档应用程序,点击菜单项增加硬币,则硬币增加,点击菜单项减少硬币,则硬币减少.如下图所示:1)首先如下图所示建立一个单文档应用程序:2)然后在已有的菜单上添加菜单项,“增加硬币”,“减少硬币”菜单条目3)然后类向导(ClassWizard),鼠标移动到到菜单条目“增加硬币”,然后点击鼠标右键,点击类对类向导(ClassWizard),添加菜单项的消息响应,在类向导中,Class Name选择文档类(如:CCoinShowDoc),Object IDs中选中 ID号为“增加硬币”的ID号(如IDM_ADDCOIN),Message选择COMMAND消息,然后点击按钮Add Function,然后点击Edit Code。
按照上述方法同样添加“减少硬币”菜单条目消息的响应4)然后在CCoinShowDoc类的头文件和源文件中添加下列代码.5)然后在类CCoinShowView中添加代码6)程序编译,运行。
VC++课程设计报告一、设计时间2010年12月 27日----12月31日二、设计地点三、设计目的《VC++程序设计》是计算机科学与技术专业的必修专业基础课程,其实践性、应用性很强。
实践教学环节是必不可少的一个重要环节。
VC程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
要求学生在设计指导教师的帮助下自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。
要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握VC++程序设计的基本技能和面向对象的概念和方法;了解菜单、视图/文档、数据库等编程技术。
同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。
四、设计小组成员五、指导老师六、设计课题派生、多态编程设计内容:依照书p33-40内容,创建一个应用了的窗口和应用程序派生类地完整实例。
设计要求:1)掌握虚函数的使用。
2)改变窗口的背景颜色和窗口的图标。
七、基本思路及关键问题的解决方法仔细审题理解题目要求,整理思路思考出一个系统总体开发,总体设计、总体实现的完整过程,参照书本,按思路编写程序。
遇到问题先独立思考,翻阅教材或上网查找解决,实在无法自己解决的问题可以向老师或同学求助。
八、算法及流程图九、调试过程中出现的问题及相应解决办法问题1:missing ';' before identifier 'InvalidateRect'解决办法:将该中文下的分号改为英文下的分号。
问题2:LINK : fatal error LNK1168: cannot open Debug/0000.exe for writing解决办法:将前一次的运行后的窗口关闭改变图标十、课程设计心得体会Visual C++是Microsofe公司开发的基于C和C++语言的集成开发工具,同其他的可视化编程工具一样,Visual C++6.0集代码编辑,编译,链接,调试等功能于一体,并提供多种有用的辅助开发工具。
vc 课程设计小游戏报告一、教学目标本课程旨在让学生掌握VC编程的基础知识,学会使用VC进行小游戏的开发。
通过本课程的学习,学生将能够:1.掌握VC的基本语法和数据结构。
2.学会使用VC进行程序设计的基本方法。
3.独立开发完成一个小游戏。
4.培养学生的编程思维和解决问题的能力。
二、教学内容本课程的教学内容主要包括:1.VC的基本语法和数据结构。
2.VC的程序设计方法。
3.小游戏的开发流程。
4.常见小游戏的算法和实现。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法:1.讲授法:讲解VC的基本语法和数据结构,程序设计方法。
2.案例分析法:通过分析典型的小游戏案例,让学生掌握小游戏的开发流程和算法。
3.实验法:让学生动手实践,独立开发小游戏,巩固所学知识。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《VC程序设计》。
2.参考书:《VC高级编程》。
3.多媒体资料:VC编程教程视频。
4.实验设备:计算机。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:通过课堂表现、参与讨论和团队合作等情况,评估学生的学习态度和积极性。
2.作业:布置适量的作业,评估学生对知识点的掌握程度和应用能力。
3.考试:定期进行考试,全面评估学生的知识水平和编程能力。
评估方式应客观、公正,能够全面反映学生的学习成果。
同时,注重鼓励学生,激发他们的学习兴趣和自信心。
六、教学安排本课程的教学安排如下:1.教学进度:按照教材的章节顺序,逐步讲解知识点,确保学生扎实掌握。
2.教学时间:合理安排课堂时间,保证教学内容的充分讲解和实践。
3.教学地点:选择合适的教室进行教学,提供良好的学习环境。
教学安排应合理、紧凑,确保在有限的时间内完成教学任务。
同时,教学安排还应考虑学生的实际情况和需要,如学生的作息时间、兴趣爱好等。
七、差异化教学根据学生的不同学习风格、兴趣和能力水平,我们将设计差异化的教学活动和评估方式,以满足不同学生的学习需求。
湖南农业大学信息科学技术学院VisualC++程序设计实验报告题目简单计算器和霓虹灯效果学号专业及班级计算机专业姓名起止日期指导教师霓虹灯效果与简单计算器1.基本功能描述要求使用MFC框架在Visual Studio 6.0环境下编写一个简易的计算器,能实现简单的加、减、乘、除四则运算。
还有霓虹灯效果,实现红,蓝,绿三种颜色在一定时间间隔内轮流变换。
2.设计思路首先建立一个单文档,在单文档中实现霓虹灯效果。
再在单文档中建立一个对话框,编辑对话框实现计算器的功能。
其中要实现在类中添加函数,添加变量等过程。
关键利用到OnTimer函数,SetTimer函数设定定时器,UpdateData函数实现数据的赋值和显示。
3.软件设计3.1设计步骤3.1.1输出霓虹灯效果的文本(1)打开Visual C++6.0,选择“文件/新建”命令。
(2)打开“新建”对话框,选择“工程”选项中的MFC AppWizard(exe)选项,在文本框中输入文本名字,如:“Myprogram”。
之后选择单文档(3)在ClassView选项卡中,在CMyprogramView选项中,添加成员变量,分别填好类型和名称。
变量1的Type是“CFont”,Name 是“font”,用来保存定义的字体输出属性。
变量2的Type是“COLORREF”,Name输入“color[3]”,数组color[3]用来保存文本中进行颜色变换的所有颜色。
变量3的Type是“int”,Name是“i”。
i是用作颜色标识,用来对数组中的数据进行选择。
(4)编辑代码:CMyprogramView::CMyprogramView(){// TODO: add construction code herei=0;font.CreatePointFont(500,"楷体",NULL);color[0]=RGB(255,0,0);color[1]=RGB(0,255,0);color[2]=RGB(0,0,255);}(5)按Ctrl+W,打开MFC ClassWizard对话框。
在Class name 下拉菜单中选择CMyprogramView,在Object IDs下拉菜单中选择CMyprogramView,在Message中选择WM_TIMER。
这样就出现了W OnTimer成员函数。
(6)双击OnDraw(CDC*pDC)函数。
编辑代码:void CFfffView::OnDraw(CDC* pDC){CFfffDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereSetTimer(1,500,NULL);//设置时间间隔为500毫秒}(7)双击OnTimer(UINT nIDEvent)成员函数,编辑代码:void CFfffView::OnTimer(UINT nIDEvent){// TODO: Add your message handler code here and/or call defaultCDC*pDC=GetDC();//获得当前设备指针CFont*oldfont=pDC->SelectObject(&font);//选中当前设置的字体属性if(i<3){pDC->SetTextColor(color[i]);pDC->TextOut(0,0,"小计算器!");i++;}elsei=0;pDC->SelectObject(oldfont);//选回以前的字体属性CView::OnTimer(nIDEvent);}(8)运行程序,可以看到每隔0.5秒“小计算器”的颜色在红色,绿色和蓝色之间变换。
3.1.2计算器对话框的创建和控件编辑(1)在单文档方式下,选择项目工作区中窗口中的Resource View 选项卡中,展开Dialog选项,手动添加用户自定义对话框(2)可根据个人喜好设计计算机对话框。
3.1.3对话框的编辑(1)打开工程文件“Myprogram”(2)选择项目工作区窗口中ResourceView选项卡并展开其选项,展开Menu选项,双击IDR_MAINFRAME选项。
(3)在右侧编辑区中,手动添加新菜单项“显示对话框”(4)在建立一个名为“显示”的子菜单项,其ID定义为ID_SHOWDIALOG。
(5)回到项目工作窗口,展开Dialog文件夹,双击IDD_DAILOG1(在对话框创建时)打开前面已经建好的对话框,在对话框的非控件区域双击鼠标,打开MFC ClassWizard对话框和Adding a class对话框,选中其中的Create a new class。
(6)打开New Class对话框,在Name文本框中输入“CMydialog”。
然后单击OK按钮。
(7)打开MFC ClassWizard对话框,在Class name下拉列表中出现了CMydialog类。
(8)在Class name下拉菜单中选择CMyprogramView,在Object IDs下拉菜单中选择ID_SHOWDIALOG类,在Message中选择COMMAND 选项。
此时在Member functions列表中将出现OnShowdialog ON_ID_SHOWDIALOG:COMMAND成员函数。
(9)在项目工作区自动出现了OnShowdialog成员函数。
(10)用鼠标右键单击CMydialogView选项,在弹出的快捷菜单中选择Add Member Variable命令,打开Add Member Variable对话框,在Variable Type文本框中输入“CMydialog”,在VaribleName文本框中输入“Mydialog”,单击OK按钮。
这样就建立了一个名为Mydialog的CMydialog类保护型对象。
(11)展开CMydialogView选项,双击OnShowdialog选项,光标移到该函数体起始位置,将其函数体内容修改为:void CFfffView::OnShowdialog(){// TODO: Add your command handler code heremydialog.DoModal();//显示对话框}(12)运行该程序,选择“显示对话框/显示”。
3.2界面设计打开对话框资源,为各个控件添加ID,进行属性设计;在计算器中要添加的有加减乘除四个成员函数,还有添加num1、num2和result这三个成员变量。
打开ClassWizard,针对IDD_MYDIALOG_DIALOG所指向的类CMydialogDlg,为该类添加成员变量。
(1)打开对话框资源IDD_ MYDIALOG _DIALOG,该对话框是程序运行时的主界面,按要求完成控件的添加。
例如,组框的添加。
首先,点击控件工具条上的‘组框’按钮,在对话框上画出组框,并适当地调整其大小。
然后右键单击组框,选择‘属性’,分别改为“ID_JIA”、“ID_JIAN”、“ID_CHENG”、“ID_CHU”。
按照这样的步骤,完成所有控件的添加。
其中包括按钮、静态文本框、编辑框、组合框。
(2)通过类向导为CMydialogDlg类添加成员变量。
单击菜单栏的‘查看’中的‘建立类向导’,打开‘MFC ClassWizard’对话框。
然后,选择‘Member V ariables’选项,选择要添加成员变量的类,再选择要添加成员变量的控制ID,单击‘添加变量’按钮,输入变量名,选择变量类型,如:float型的num1,float型的num2,float型的result。
单击确定即可。
然后按照同样的方法为所有的控件添加成员变量。
3.3关键功能的实现(1)给控件绑定变量:利用类向导给三个编辑框绑定三个float 型的变量。
Ctrl+W打开类向导,在Project里选择Myprogram,Class name中选择CMydialog,在Control IDs选择IDC_FIRNUM,然后选择Add V ariavle,在打开第二个选型卡Member Variable成员变量。
为IDC_FIRNUM添加一个变量。
在Member V ariable Name中m_num1,Category中选择value。
在V ariable Type中选择float。
Ctrl+W打开类向导,在Project里选择Myprogram,Class name中选择CMydialog,在Control IDs选择IDC_SECNUM,然后选择Add V ariavle,在打开第二个选型卡Member Variable成员变量。
为IDC_SECNUM添加一个变量。
在Member Variable Name中m_num2,Category中选择value。
在V ariable Type中选择float。
这样就完成了控件与变量的绑定。
(2)对按钮控件的事件响应函数的添加。
1.加法的实现右键建立类向导,从IDs中选择ID_JIA,即加这个按钮。
从Message 中选择BN_CLICKEO,即别单击时,点Add Function为其添加函数。
然后弹出对话框中,为函数命名,默认值即可。
点击OK。
然后会在Member Function中,添加了一个函数OnJia,选中,然后点击Edit Code,编辑代码。
void CMydialog::Onjia(){// TODO: Add your control notification handler code hereUpdateData(true);//刷新数据,刷新控件的值到变量m_result=m_num1+m_num2;UpdateData(false);//刷新数据到控件显示}2.减法的实现右键建立类向导,从IDs中选择ID_JIAN,即加这个按钮。
从Message中选择BN_CLICKEO,即别单击时,点Add Function为其添加函数。
然后弹出对话框中,为函数命名,默认值即可。
点击OK。
然后会在Member Function中,添加了一个函数OnJian,选中,然后点击Edit Code,编辑代码。
void CMydialog::Onjian(){// TODO: Add your control notification handler code hereUpdateData(true);//刷新数据,刷新控件的值到变量m_result=m_num1-m_num2;UpdateData(false);//刷新数据到控件显示}3.乘法的实现右键建立类向导,从IDs中选择ID_CHENG,即加这个按钮。