中国石油大学(华东)vc 实验报告mfc_定时器编程实验

上传人:第*** 文档编号:32820307 上传时间:2018-02-12 格式:DOCX 页数:5 大小:175.91KB
返回 下载 相关 举报
中国石油大学(华东)vc  实验报告mfc_定时器编程实验_第1页
第1页 / 共5页
中国石油大学(华东)vc  实验报告mfc_定时器编程实验_第2页
第2页 / 共5页
中国石油大学(华东)vc  实验报告mfc_定时器编程实验_第3页
第3页 / 共5页
中国石油大学(华东)vc  实验报告mfc_定时器编程实验_第4页
第4页 / 共5页
中国石油大学(华东)vc  实验报告mfc_定时器编程实验_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《中国石油大学(华东)vc 实验报告mfc_定时器编程实验》由会员分享,可在线阅读,更多相关《中国石油大学(华东)vc 实验报告mfc_定时器编程实验(5页珍藏版)》请在金锄头文库上搜索。

1、MFC 定时器编程实验一、实验目的(1) 掌握 Visual Studio 开发环境调试程序的方法;(2) 掌握 MFC 消息映射的操作步骤 ;(3) 掌握 MFC 编程模式中定时器的使用方法 .二、实验内容设计一个窗口,在窗口中间位置绘制一个红色粗实线的矩形,并用交替使用三种不同样式的画刷填充矩形的内部,每次刷新的时间间隔为 1.0 秒。单击鼠标左键启动定时器,单击鼠标右键停止定时器。三、程序清单1.头文件#include afxwin.hclass CDemoWnd:public CFrameWndpublic:CDemoWnd();CDemoWnd();public:LRESULT On

2、Paint(WPARAM wParam,LPARAM lParam);LRESULT OnTimer(WPARAM wParam,LPARAM lParam);LRESULT OnLButtonDown(WPARAM wParam,LPARAM lParam);LRESULT OnRButtonDown(WPARAM wParam,LPARAM lParam);DECLARE_MESSAGE_MAP()public:int m_nState; ;class CDemoApp:public CWinApppublic:BOOL InitInstance();CDemoApp theApp;2.源

3、文件#include Demo.hCDemoWnd:CDemoWnd() / 构造函数m_nState = 0;CDemoWnd:CDemoWnd() / 析构函数BEGIN_MESSAGE_MAP(CDemoWnd,CFrameWnd)ON_MESSAGE(WM_PAINT,OnPaint)ON_MESSAGE(WM_TIMER,OnTimer)ON_MESSAGE(WM_LBUTTONDOWN,OnLButtonDown)ON_MESSAGE(WM_RBUTTONDOWN,OnRButtonDown)END_MESSAGE_MAP()LRESULT CDemoWnd:OnLButtonDo

4、wn(WPARAM wParam,LPARAM lParam)SetTimer(1,1000,NULL);return 0;LRESULT CDemoWnd:OnRButtonDown(WPARAM wParam,LPARAM lParam)KillTimer(1);return 0;LRESULT CDemoWnd:OnPaint(WPARAM wParam,LPARAM lParam)CPaintDC dc(this);CPen Pen, *poldpen;CBrush Brush, *pOldBrush;switch (m_nState)case 0:Brush.CreateSolidB

5、rush(RGB(0, 150, 255); /紫色m_nState = 1;break;case 1:Brush.CreateSolidBrush(RGB(0, 255, 100); /蓝色m_nState = 2;break;case 2:Brush.CreateSolidBrush(RGB(200, 0, 200); /青色m_nState = 0;break;pOldBrush = dc.SelectObject(Pen.CreatePen(PS_SOLID, 3, RGB(255, 0, 0);poldpen = dc.SelectObject(dc.Rectangle(300, 1

6、00, 800, 500);dc.SelectObject(poldpen);dc.SelectObject(pOldBrush);return 0;LRESULT CDemoWnd:OnTimer(WPARAM wParam,LPARAM lParam)CRect rt(40, 40, 1000, 1000);InvalidateRect(return 0;BOOL CDemoApp:InitInstance()CDemoWnd *pMainWnd = new CDemoWnd();pMainWnd-Create(NULL,Demo Mini-MFC);pMainWnd-ShowWindow

7、(m_nCmdShow);pMainWnd-UpdateWindow();m_pMainWnd = pMainWnd;return TRUE;四、运行结果五、定时器消息编程的步骤,以及程序设计过程中需要注意的问题;1、 启动定时器使用SetTimer 函数创建一个定时器,并制定超时时间,然后启动定时器。该函数说明如下:UINT SetTimer(UINT nIDEvent, / 定时器标识符UINT nElapse, / 定时时间,单位是毫秒void (CALLBACK EXPORT* lpfnTimer) / 定时器回调函数地址(HWND, UINT, UINT, DWORD);示例代码:S

8、etTimer(1,200,NULL );2、 销毁定时器定时器在不使用时要使用KillTimer 函数进行销毁,该函数说明如下:BOOL KillTimer(int nIDEvent / 定时器标识符);示例代码:KillTimer(1) ;应注意:WM_TIMER消息的应用消息号:WM_TIMERwTimerID = wParam; / 定时器标识符tmprc = (TIMERPROC *) lParam; / 定时器回调函数的地址其中,定时器回调函数在使用SetTimer 启动定时器时指定,如果没有指定定时器回调函数则可直接通过消息映射处理WM_TIMER 消息。六、实验总结通过本次实验

9、,我进一步的熟悉了 Visual Studio 软件的开发环境,对这个软件有了更深的了解。熟悉了 Visual Studio 开发环境, 学习和掌握了 MFC 消息映射的操作步骤,并且掌握 MFC 编程模式中定时器的使用方法.,进一步掌握了在 Visual Studio 中调试程序的方法。在实验中我也复习了以前的实验中学到的在 Visual Studio 开发环境调试程序的方法,并且可以更加熟练的应用其来修改程序。我也理解了定时器消息编程的步骤。在实验过程中,我也遇到了一些困难,比如不够熟悉 Visual Studio 软件的应用,忘记在后面销毁定时器,忘记改变项目中 Demo 的属性。经过老师和同学的指导,我学会了解决这些问题的办法。在实验课里收获了很多,感觉受益匪浅。通过这次的实验,我对 Windows 程序编程有了较为全面的了解,熟练的掌握了 C+程序调试的方法。感觉这门实验课和理论课的知识有很大的联系,使我对 Visual Studio 软件和 Visual C+ 实验这门课产生了浓厚的兴趣,我相信我以后一定会学好这门课。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号