教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

MFC写的贪吃蛇代码(5)

来源:网络收集 时间:2026-08-28
导读: UINT_PTR SetTimer( HWND hWnd, // 窗口句柄 UINT_PTR nIDEvent, // 定时器ID,多个定时器时,可以通过该ID判断是哪个定时器 UINT uElapse, // 时间间隔,单位为毫秒 TIMERPROC lpTimerFunc // 回调函数 ); SetTimer

UINT_PTR SetTimer(

HWND hWnd, // 窗口句柄

UINT_PTR nIDEvent, // 定时器ID,多个定时器时,可以通过该ID判断是哪个定时器

UINT uElapse, // 时间间隔,单位为毫秒

TIMERPROC lpTimerFunc // 回调函数

);

SetTimer(m_hWnd,1,1000,NULL); //一个1秒触发一次的定时器

在MFC程序中SetTimer被封装在CWnd类中,调用就不用指定窗口句柄了

所以我们这里可以只去后3个参数写成SetTimer(1,10,NULL);

1000为1秒

关于afxMessageBox的研究在本博客中有写有,这里就不在赘述

Step 6 对OnDraw()的添加代码

OnDraw()函数众所周知视图类中的输出.视图类的输出基本上都是在视图类的OnDraw函数中处理的,系统会准备好入参,然后调用OnDraw函数

本人也没有过多的去研究过次函数,仅知道一些皮毛。不过这里有个知识点那便是OnPaint()与OnDraw()的区别,OnPaint()派生于CWnd类,响应WM_PAINT消息。OnDraw是CView类的成员函数,并且没有消息响应功能,这就是为什么视图类没有只有OnDraw()而没有OnPaint()的原因。OnDraw()维护视图客户区(例如通过试表在视图中画图),而OnPaint()维护窗口的客户区

void CSNAKEView::OnDraw(CDC* pDC) {

CSNAKEDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc);

// TODO: add draw code for native data here CBrush backBrush(RGB(100,100,0));

CBrush* pOldBrush = pDC->SelectObject(&backBrush); CRect rect;

pDC->GetClipBox(&rect);

pDC->PatBlt(rect.left, rect.top, rect.Width(), rect.Height(),PATCOPY); pDC->SelectObject(pOldBrush);

pDC->Rectangle(19,19,501,501);

oninit(); }

代码说明:

此处是用画刷画一个背景,并且画出3个矩形区域

函数原型:int GetClipBox(HDC hdc, LPRECT lprc);

该函数得到一个能够完包含当前可见区域的最小矩形的大小。

函数原型:int nYLeft, int nWidth, int nHeight, DWORD dwRop);

该函数使用当前选入指定设备环境中的刷子绘制给定的矩形区域。

Step 7 对OnTime()的添加代码

void CSNAKEView::OnTimer(UINT nIDEvent) {

// TODO: Add your message handler code here and/or call default CDC *pDC=GetDC(); CString soure;

if(Snake[0].len==2)SetTimer(1,370,NULL); if(Snake[0].len==3)SetTimer(1,270,NULL); if(Snake[0].len==6)SetTimer(1,200,NULL); if(Snake[0].len==9)SetTimer(1,100,NULL);

soure.Format(\得分:%d!\//撞界判断

if(Snake[0].x*20<=37||Snake[0].y*20<=37||Snake[0].x*20>=462||Snake[0].y*20>=462) {

KillTimer(1);

AfxMessageBox(soure); // s=0; }

MFC写的贪吃蛇代码(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/518913.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)