- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验六 MFC定时器编程实验
实验目的
(1) 掌握 Visual Studio 开发环境调试程序的方法 ;
(2) 掌握 MFC 消息映射的操作步骤 ;
(3) 掌握 MFC 编程模式中定时器的使用方法 。
实验内容
设计一个窗口,在窗口中间位置绘制一个红色粗实线的矩形,并用交替使用三
种不同样式的画刷填充矩形的内部,每次刷新的时间间隔为 1.0 秒。
单击鼠标左键启动定时器,单击鼠标右键停止定时器。
实验报告
列出定时器操作相关的程序清单;
头文件:
#include afxwin.h
class CDemoWnd:public CFrameWnd
{
public:
CDemoWnd();
~CDemoWnd();
public:
LRESULT OnPaint(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;
};
class CDemoApp:public CWinApp
{
public:
BOOL InitInstance();
};
CDemoApp thisApp;
源文件:
#include Demo.h
CDemoWnd::CDemoWnd()
{
m=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::OnLButtonDown(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;
Pen.CreatePen(PS_SOLID,3,RGB(255,0,0));
switch(m)
{
case 0:
Brush.CreateHatchBrush (HS_CROSS,RGB(0,255,0));
m++;
break;
case 1:
Brush.CreateHatchBrush (HS_HORIZONTAL,RGB(0,0,255));
m++;
break;
case 2:
Brush.CreateHatchBrush (HS_VERTICAL,RGB(0,255,255));
m=0;
break;
}
pOldPen = dc.SelectObject(Pen);
pOldBrush = dc.SelectObject(Brush);
dc.Rectangle (300,200,600,500);
dc.SelectObject(pOldPen);
dc.SelectObject(pOldBrush);
return TRUE;
}
LRESULT CDemoWnd::OnTimer(WPARAM wParam,LPARAM lParam)
{
CRect rt(300,200,600,500);
InvalidateRect(rt);
return 0;
}
BOOL CDemoApp::InitInstance()
{
CDemoWnd *pMainWnd = new CDemoWnd();
pMainWnd-Create(NULL,_T(Demo Min
文档评论(0)