MFC实践总结

更新时间:2023-09-14 20:47:01 阅读量: 初中教育 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

mfc编程实验总结报告 知识总结+个人心得 2011年暑期mfc编程实验报告 mfc编程实验个人总结报告 一、mfc类、函数等知识小结: 1、settimer (1, m_intlevel, null); 在mfc程序中settimer被封装在cwnd类中,调

用就不用指定窗口句柄了于是settimer函数的原型变为: uint settimer(uint nidevent,uint nelapse,void(callback export

*lpfntimer)(hwnd,uint ,yint ,dword)) 当使用settimer函数的时候,就会生成一个计时器。函数中nidevent指的是计时器的标识,也就是名字。nelapse指的是时间间隔,也就是每隔多长时间触发一次事件。第三个参数是一个回调函数,在这个函数里,放入你想要做的事情的代码,你可以将它设定为null,也就是使用系统默认的回调函数,系统默认认的是ontime函数。这个函数怎么生成的呢?你需要在需要计时器的类的生成ontime函数:在classwizard里,选择需要计时器的类,添加wm_time消息映射,就自动生成ontime函数了。然后在函数里添加代码,让代码实现功能。

每隔一段时间就会自动执行一次。 例: settimer(1,1000,null); 1:计时器的名称;

1000:时间间隔,单位是毫秒; null:使用ontime函数。

当不需要计时器的时候调用killtimer(nidevent); 例如:killtimer(1); killtimer (1); 2、typedef struct{};

(1) struct{ int x; int y; }test1; 好,定义了 结构 test1,

test1.x 和 test1.y 可以在语句里用了。 (2) struct test {int x; int y; }test1; 定义了结构 test1,

test1.x 和 test1.y 可以在语句里用了。 与 (1) 比,省写 了 test (3) typedef struct test {int x; int y; }text1,text2; 此处时说了这种结构体(类型)别名 叫 text1 或叫 text2,而不是定义了结构体变量. 真正在语句里用,还要写: text1 test1;//定义结构体变量 然后好用 test1.x test1.y 或写 text2 test1; //定义结构体变量 然后好用 test1.x test1.y 3、invalidate ( ); //让客户区无效,即时重新绘制客户区 void invalidate( bool berase = true ); 该函数的作用是使整个窗口客户区无效。窗口的客户区无效意味着需要重绘,例如,如果一个被其它窗口遮住的窗口变成了前台窗口,那么原来被遮住的部分就是无效的,需要重绘。这时windows会在应用程序的消息队列中放置wm_paint消息。mfc为窗口类提供了wm_paint的消息处理函数onpaint,onpaint负责重绘窗口。视图类有一些例外,在视图类的onpaint函数中调用了ondraw函数,实际的重绘工作由ondraw来完成。参数berase为

true时,重绘区域内的背景将被擦除,否则,背景将保持不变。 4、cdc::rectangle(左上x,左上y,右下x,右下y); 使用该函数画一个矩形,可以用当

前的画笔画矩形轮廓,用当前画刷进行填充。 函数原型:bool rectangle(hdc hdc, int nleftrect, int ntoprect, int nrightrect, int nbottomrect);

hdc:设备环境句柄。

nleftrect:指定矩形左上角的逻辑x坐标。 ntoprect:指定矩形左上角的逻辑y坐标。 nrightrect:指定矩形右下角的逻辑x坐标。 nbottomrect:指定矩形右下角的逻辑y坐标。 5、cbrush:: cbrush//画刷类 eg:cbrush brushstick (rgb (127, 127, 127) ); 四种构造函数: cbrush( );

cbrush( colorref crcolor ); cbrush( int nindex, colorref crcolor ); cbrush( cbitmap* pbitmap ); 参数说明: crcolor指定画刷的前景色(rgb方式)。如果画刷是阴影线型的,则指定阴影线的颜色。 nindex指定画刷阴影线采用的风格,取值如下: hs_bdiagonal45度的向下影线(从左到右) hs_cross水平和垂直方向以网格线作出阴影 hs_diagcross 45度的网格线阴影 hs_fdiagonal 45度的向上阴影线(从左到右 )

hs_horizontal 水平的阴影线 hs_vertical 垂直的阴影线 pbitmap指向cbitmap对象的指针,该对象指定了画刷要绘制的位 图。

构造函数说明:

6、messagebox (game over!); messagebox(null,text,title,button); 参数title:string类型,指定消息对话框的标题。text:指定消息对话框中显示的消息,该参数可以是数值数据类型、字符串或boolean值。icon:icon枚举类型,可选项,指定要在该对话框左侧显示的图标。button:button枚举类型,可选项,指定显示在该对话框底部的按钮。default:数值型,可选项,指定作为缺省按钮的按钮编号,按钮编号自左向右依次计数,缺省值为1,如果该参数指定的编号超过了显示的按钮个数,那么messagebox()函数将使用缺省值返回值integer。函数执行成功时返回用户选择的按钮编号(例如1、2、3等),发生错误时返回-1。如果任何参数的值为null, messagebox()函数返回null。 函数原型:

messagebox.show(text,title,messageboxbuttons,messageboxicon ,messageboxdefaultbuttons)

参数说明:

(1)text:必选项,消息框的正文。 (2)title:可选项,消息框的标题。

(3)messageboxbuttons:可选项,消息框的按钮设置,默认只显示【确定】按钮。 ok――确定 okcancel――确定和取消 abortretryignore――终止、重试和忽略 yesnocancel――是、否和取消 yesno――是和否 retrycancel――重试和取消 (4)messageboxicon:对话框中显示的图标样式,默认不显示任何图标。

question――问号 information、asterisk――i号 error、stop、hand――错误号 warning、exclamation――!号 none――不显示任何图标 (5)messageboxdefaultbuttons:可选项,对话框中默认选中的按钮设置。

defaultbutton1――第1个button是默认按钮 defaultbutton2――第2个button是默认按钮 defaultbutton3――第3个button是默认按钮 7、memcpy(拷贝目的地,拷贝对象,拷贝长度); 包含在头文件#include <string.h>中

函数原型:

extern void *memcpy(void *destin, void *source, unsigned n); 功能:

由source指向地址为起始地址的连续n个字节的数据复制到以destin指向地址为起始地址的空间内。 eg:

int a=5,b=9;

memcpy(a,b,sizeof(a));//将b按位拷给a; 说明:

1.source和destin所指内存区域不能重叠,函数返回指向destin的指针。 2.与strcpy相比,memcpy并不是遇到\\0就结束,而是一定会拷贝完n个字节。篇三:

mfc个人心得体会 mfc个人心得体会 06a13526 余思远 时间过得很快,历时一个月的短学期即将结束,我们小组的mfc课题也基本完成。虽然只有短短的一个月,但却带给我很多。在小组成员的共同努力下,基本解决了计划中的一个

个问题,要实现一个功能并不算复杂的计算器,也没有想象中那么简单。 mfc涉及的概念很多,语法也与以前有些许不同,在c++基础上新增的内容也有许多。从开始编辑一个简单的界面,通过这段时间的学习,终于感到掌握了些许了,但想更加熟练的使用,也必须付出更多的时间吧。我发现在编程过程中,并不能只想着眼前所负责的这一块,

许多对许多综合多方面进行考虑,需要与自己队友进行配合,作出合理的计划和安排。 实践是检验真理的唯一标准,这次mfc的实践活动,让我学习到了很多知识,弥补了很多漏洞。这个看似简单对我们来说却付出了很多时间和精力的程序,让我体会到了mfc相比与单纯的c++的优越性。程序编译过程中的有些困难虽然我们的能力范围内也无法解决,但是在网上资料的参考,读懂他人资料、相关程序的基础上,我们也完成了这个程序。相信这个经历能对以后的编程有很大的帮助。我也从此次课程设计中体会到了团队合作的乐趣和力量。在一个团队中扬长避短,发挥自己应有的作用,能让我们更加容易地去克服一个又一个

难关。篇四:c++(mfc)程序设计实践报告 中南大学 本科生课程设计(实践)任务书、设计报告 (c++语言程序设计) 题 目

学生姓名 指导教师 学 院 专业班级 学生学号 计算机基础教学实验中心

年 月 日 目 录 设计任务书?????????????????3 课程实践报告????????????????4 一、实践内容??????????????????????4 二、实践成果??????????????????????4 三、程序功能??????????????????????4 四、设计思路??????????????????????5 五、源程序???????????????????????7 六、运行情况??????????????????????13 七、实践心得??????????????????????16 八、实践收获与不足???????????????????18 c++语言程序设计任务书 指导老师:李力

课程编号: 一、学时与学分 学时:40

学分:2 二、实践目的 计算机实践是本科计算机基础教学的一个重要环节。它对于巩固学生的计算机基础知识,

增强学生的计算机应用水平,改善学生的知识结构,具有重要意义。 三、实践任务与要求

用c++语言编程。编程题目如下: (一)统计一个班(最多有35人)的学生成绩,要求能实现如下功能:(1)输入每个学生的学号和6门课程的成绩。(2)计算每个学生的平均分和总分。(3)按总分从高到低排出名次,并按名次输出每个学生的情况,包括学号、各科成绩、平均分和总分。(4)根据用户要求输出某门课程(从键盘输入课程号)成绩在90分以上(含90分)且总分在前5名的学生情况,包括学号、各科成绩、平均分和总分。(5)根据统计,绘制总成绩五分制百分比饼图。(自学利用c++提供的库函数绘制曲线图)。要求:利用类来实现,学生学号和成绩采用文件输入,排序。 数据的组织可采用对象数组 。查阅相关资料并写出系统设计说明书。写出实践报告。 (二)统计商品销售数据,要求能用菜单实现如下功能:(1)输入每件商品的名称,编号,入库日期,标价,成本。(2)输入每件商品的售价,出售日期。(3)按总销售量从高到低排出每种商品的名称,售出件数,销售额。(4)根据用户要求输出某商品某月(从键盘输入商品名称和月份)的平均售价、售出件数、总利润。(5)根据统计,绘制商品销售利润百分比饼图。(自学利用c++提供的库函数绘制曲线图)。要求:利用类实现,数据采用文件输入,排序。 数据的组织可采用对象数组 。查阅相关资料并写出系统设计说明书。写出实践报告。 (三)统计足球比赛数据,要求能用菜单实现如下功能:(1)输入每场比赛的主队名称,客队名称,比赛日期,主队得分,客队得分。(2)按总得分从高到低排出每个队的名称,总得分,胜,和,负的次数。(3)根据用户要求输出某队某月(从键盘输入队名和月份)的所有比赛数据。(4)根据用户要求输出某队主场总得分,客场总得分(5) 根据用户输入,绘制某队成绩历史趋势图。(自学利用c++提供的库函数绘制曲线图)。要求:利用类实现,数据

采 用文件输入,排序。 数据的组织可采用对象数组 。查阅相关资料并写出系统设计说明书。写出实践报告。 (四)统计稿件管理数据,要求能用菜单实现如下功能:(1)输入每件稿件的第一作者名字,稿件名称,投稿日期,作者的省份。(2)输入每件稿件的发表日期,审稿意见。(3)按作者的省份,从高到低排出每个省的总发表篇数。(4)根据用户要求输出某作者某月(从键盘输入作者名和月份)的所有稿件数据。 (5) 根据用户输入,绘制稿件按省份的百分比饼图。(自学利用c++提供的库函数绘制曲线图)。要求:利用类实现,数据采用文件输入,排

序。 数据的组织可采用对象数组 。查阅相关资料并写出系统设计说明书。写出实践报告。 (五)统计用电管理数据,要求能用菜单实现如下功能:(1)输入每个电表的用户名,楼栋号,抄表日期,电表读数。(3)按作者的用电量,从高到低排出每个用户的总用电量。(3)根据用户要求输出某用户某月(从键盘输入用户名和月份)的总用电量。(4)统计某楼栋从某月到某月(从键盘输入)的总用电量 (5) 绘制按的楼栋的用电百分比饼图。(自学利用c++提供的库函数绘制曲线图)。要求:利用类实现,数据采用文件输入,排序。 数据的组织

对象数组。查阅相关资料并写出系统设计说明书。写出实践报告。 以上五题任选一题。 四、实践纪律

学生除了要遵守实践期间学院的基本规定外,还要求做到: 1.必须在规定的时间、地点,独立完成以上任务; 2.不得迟到、早退。尤其不得擅自缺席。 五、设计报告要求

1. 任务书必须作为报告第一页 2. 报告不得少于3000字:主要总结实践心得、实践成果 、程序功能、设计思路(程序流程图)、源程序(加上必要的注释)、运行情况、课程设计的收获与不足等 六、时间安排

两周时间 七、成绩评定规则

成绩分为优、良、中、及格、不及格五等。 优:程序功能完备,报告有深度, 遵守实践纪律。 良:程序功能满足要求,报告有内容, 遵守实践纪律。 中:程序和报告基本满足要求, 遵守实践纪律。 及格:程序有错误但大体能运行,有报告书, 基本遵守实践纪律。 不及格:程序完全错误或严重违反实践纪律。 c++语言程序设计报告 一、 实践内容 统计稿件管理数据,要求能用菜单实现如下功能:(1)输入每件稿件的第一作者名字,稿件名称,投稿日期,作者的省份。(2)输入每件稿件的发表日期,审稿意见。(3)按作者的省份,从高到低排出每个省的总发表篇数。(4)根据用户要求输出某作者某月(从键盘输入作者名和月份)的所有稿件数据。 (5) 根据用户输入,绘制稿件按省份的百分比饼图。(自

学利用c++提供的库函数绘制曲线图)。 二、实践成果 灵活运用《c++程序设计》课程所学的基础知识,独立设计大型程序的能力;该程序必须

用户界面友好、操作简洁方便,大大提高工作效率。 此程序先由用户输入数据,并存储。再作各种功能处理。整个程序基本可以实现稿件管

理数据系统的统计。 三、 程序功能 a) 录入功能:可以写入关于稿件的基本信息,并进行以下几项功能。 b) 排序功能:用户可按作者的省份,将每个省的总发表篇数进行排序,并 输出。

c) 查询功能:用户可根据作者与月份查出某作者某月的稿件数据,没找到 的给予提示。 d) 绘制饼状图功能:系统根据输入的数据绘制高价男生份的百分比饼图。 e) 各项退出

功能:在每个环节里都设有退出功能。 四、设计思路 统计稿件管理数据系统程序框图篇五:mfc心得 mfc学习心得 时光如梭,不知不觉短学期已经结束一个月左右了。对于mfc,这种c++的高级应用,从陌生到熟悉,从茫然到大致了解,从不屑一顾到很感兴趣,在编写飞行棋这个游戏的过程中

感触良多,也收获了许多。 mfc跟以前的控制台编程有比较大的差异,实现了部分可视化编程。对于其中复杂的类和函数,刚开始的时候感到相当的恐慌。虽然在暑假的时候有看过一些书,但到真正做起来却仍然觉得很吃力。第一次上mfc的课,老师一下子讲了很多东西,主要是控件,对于如此繁复的知识感觉一片茫然。整个理论课上了四节,虽然老师也讲了一些东西,但是对于我们要做的系统却是远远不够的。所以,很多东西都需要我们自学,到图书馆借书,到网上查找

资料,问同学,问老师……我们使用各种方法获取知识。 必须学会自学,这是短学期的编程课带给我的一大感触。虽然我们需要做的只是一个小型的游戏,但对于初次接触窗口编程的我们难度依然是非常大了。但是,我们克服了,通过我们的团结协作。 要学会团结协作是我另一大感触。小组中各个组员的通力合作是编程工作能够顺利进行的一大关键,我们进行了明确的分工,却又能互相合作,互相参考,互相帮助。只有这样,

才会有最后的飞行棋游戏新鲜出炉。 在编程过程中,我主要负责的部分是图形设计和界面美化部分。这部分的特点是:既与大一所学的控制台编程紧密联系,又必须要和现在所学的窗口程序编程相衔接。代码基本上靠逐行输入,考验的是自己的逻辑思维能力和严谨态度。其实,这部分的代码并不是特别多,所以编写代码的工作也并不是很难的。 最磨练人的耐性的是将写好的代码进行调试。由于程序长度相对于原来的编程根本不属于同一个数量级,所以调试理所当然地变得痛苦起来。并且,这些代码基本上在编译时都能够一次通过,但在实际运行时却老是出错,检查算法和语法又不得要领。这个时候,就不得不耐着性子,用调试工具逐行调试了。学会了一些调试技

巧,这不得不说是编程过程中我的一大收获。 很久以前,我认为程序就是在头脑中思考一下就立即ok,而且程序先写出来再说, 然后再改就是,人的认识总是慢慢前进的!经过了短学期的编码和试验,彻底打破了以前的一些思维,其实程序只是人的思维的体现而已,因而重要的是思想,所以在构架整体框架的时候,先写一些程序验证是很必要的,而在程序开发的过程中,其如果对工程不是很了解的阶段,也只能

算是在为整体框架做必要的验证,所以一般的工程的周期长于我们想象的那样! 尽管mfc这门课程已经结束了,但是我还会继续学习下去,希望自己将来能够对编程有更加深入的了解。

本文来源:https://www.bwwdw.com/article/s42h.html

Top