MFC实践总结 下载本文

内容发布更新时间 : 2024/5/10 14:42:25星期一 下面是文章的全部内容请认真阅读。

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++语言程序设计) 题 目