已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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.y3、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对象的指针,该对象指定了画刷要绘制的位图。 构造函数说明: 类CBrush一共有四个覆盖的构造函数。不带参数的那个构造函数构造一个未初始化的CBrush对象,在使用该对象之前需要另外初始化。如果使用了不带参数的那个构造函数,则必须用CreateSolidBrush、CreateHatchBrush、CreateBrushIndirect、CreatePatternBrush或CreateDIBPatternBrush来初始化返回的CBrush对象。如果使用了带参数的构造函数,则不再需要初始化CBrush对象。带参数的构造函数在出错时会产生一个异常,而不带参数的构造函数总是成功返回。只带有一个参数COLORREF的构造函数用指定的颜色构造一个实线型的画刷。颜色是一个RGB值,可以用WINDOWS.H中的宏RGB构造出来。带两个参数的构造函数构造一个阴影线型的画刷,参数nIndex指定了阴影线模式的指数(index)。参数crColor指定了画刷的颜色。带有一个CBitmap型参数的构造函数构造一个模式化的画刷。参数指定一个位图。该位图应该是已经用CBitmap:CreateBitmap、CBitmap:CreateBitmapIndirect、CBitmap:LoadBitmap或CBitmap:CreateCompatiableBitmap建立或加载的位图。填充模式下的位图的最小尺寸为8像素8像素。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、Asteriski号 Error、Stop、Hand错误号 Warning、Exclamation!号 None不显示任何图标 (5)MessageBoxDefaultButtons:可选项,对话框中默认选中的按钮设置。 DefaultButton1第1个button是默认按钮 DefaultButton2第2个button是默认按钮 DefaultButton3第3个button是默认按钮7、Memcpy(拷贝目的地,拷贝对象,拷贝长度);包含在头文件#include 中函数原型: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个字节。 3.如果目标数组destin本身已有数据,执行memcpy()后,将覆盖原有数据(最多覆盖n)。如果要追加数据,则每次执行memcpy后,要将目标数组地址增加到你要追加数据的地址。 /注意,source和destin都不一定是数组,任意的可读写的空间均可。二、MFC个人学习心得:1、问题的解决::绘制窗口时会出现严重的刷屏问题,问了解决这一问题,通过改变背景位图来替代过多的部分的重绘达到更好效果。一个满载的二维、三维数组都可以用一个足够长的一维数组来装下。2、MFC基础细节学习:学习了位图的使用,CBrush类,CDC类,CDialog类的基本使用,对于菜单的设置初步了解了。 3、mfc编程的初步理解:通过自学了解到mfc编程的实现是通过建立消息映射表来实现各个函数的调用。(1)通过DECLARE_MESSAGE_MAP声明消息映射;(2)通过BEGIN_MESSAGE_MAP和宏END_MESSAGE_MAP来包含消息映射宏,创建消息映射列表;(3)为消息处理函数添加代码,实现需要的响应。通过以上三大步实现消息映射。每种对话框的操作要通过先建立相应的CDialog类来具体进行。MFC编程只是一种工具,而编程的核心还是代码的实现。我们在使用MFC编程时要想学得更好就要不断练习,更具体的了解其中的各种类、函数,各种工具,MFC是一个巨大的工具箱,但是如果不知道工具箱里面的工具怎么用,那在好的工具也无用武之地。所以,我认为此次编程小实习主要是让我初步接触了MFC如何实现可视化编程。未来要想真正掌握MFC编程还要不断的深入了解各种MFC工具,真正的与代码结合起来实现高效实用的编程效果。4、这次编程实习过程中,另一点感受最深的就是团队合作,一支团队要想有好的工作效率和质量就必须有足够的队伍成员间的默契。如果仅仅靠个别人去完成,其实是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026国网贵州省电力公司高校毕业生提前批招聘(约450人)笔试备考题库浓缩500题含答案详解ab卷
- 2026国网吉林省电力公司高校毕业生提前批招聘(约450人)笔试备考题库浓缩500题带答案详解(完整版)
- 2026国网吉林省电力公司高校毕业生提前批招聘(约450人)笔试备考题库浓缩500题含答案详解(轻巧夺冠)
- 2026国网广东省电力公司高校毕业生提前批招聘(约450人)笔试备考题库浓缩500题及答案详解一套
- 2026国网甘肃省电力公司高校毕业生提前批招聘笔试参考题库浓缩500题及答案详解参考
- 2026届国家管网集团高校毕业生招聘考试参考题库(浓缩500题)及一套完整答案详解
- 2026国网江苏省电力公司高校毕业生提前批招聘(约450人)笔试备考题库浓缩500题含答案详解(综合卷)
- 2026秋季国家管网集团工程技术创新公司(国家管网集团造价管理中心)高校毕业生招聘笔试参考题库(浓缩500题)及1套完整答案详解
- 2026国网河北省电力公司高校毕业生提前批招聘(约450人)笔试备考题库浓缩500题含答案详解(完整版)
- 2025国网河南省电力校园招聘(提前批)笔试模拟试题浓缩500题及答案详解(基础+提升)
- 贵州省食堂管理暂行办法
- 2026版《全品高考》选考复习方案生物0503 第15讲 第1课时 基因的自由组合定律含答案
- 【粤教版(2024)七年级上册地理】1.2 地图-地形图的判读 第三课时 课件
- 2025银行招聘国家开发银行笔试真题
- 成人零基础英语教学课件
- 大学生网络安全教育主题班会
- 突发疾病应急处置指南
- 口腔护理部主管竞聘
- 信用报告管理制度
- 检验科感染管理制度
- 银行+风控管理制度
评论
0/150
提交评论