MFC课程设计-扫雷_第1页
MFC课程设计-扫雷_第2页
MFC课程设计-扫雷_第3页
MFC课程设计-扫雷_第4页
MFC课程设计-扫雷_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、宿迁学院Windows程序设计课程考核报告班级:学号:姓名:得分:2013年12月15日设.计目的及要求1.设1计目的及问题描述1.设2计要求1.软3件、硬件环境课.程设计步骤.课程设计内容3.概1要设计3.1.程1序总体框架描述3.1程.序2常用类声明3.主2要技术3.系3统设计结果(界面截图、操作流程设.计总结4.遇1到的问题及如何解决4.体2会源.代码设计目的及要求1.1设计目的及问题描述利用程序编写扫雷游戏,以检测自己一个学期对学习的情况,以及了解自己在学习中的不足,巩固和提高自己对的理解和掌握。掌握编程和调试的基本技能,进一步提高自己的动手能力,和运用解决实际问题的能力。本次我做的是

2、一个简单的扫雷的游戏,包括计算雷数、时间和扫雷的规则制定。1.2设计要求找出所有的非地雷的地方。如果在掀开方块的过程中,不小心翻开(踩到)藏有地雷的方块,则宣告失败(游戏结束),惟有将所有不含地雷的方块掀开游戏才算成功。游戏规则:首先按右键开始,可以通过界面快捷键(如图笑脸)也可以通过菜单重新开始。接着左键按下的数字周围一圈八格中雷的个数。当确定小方框里面是一个雷,则用右键按下有一个小旗出现。当发现此处不是一个雷时,就可以再次按下。结束时只需要按标题栏的关闭键或菜单中的文件下的退出。当踩到一个雷时,程序结束。软件硬件1.3软件、硬件环境操作系统,课程设计步骤1)添加位图前十二幅是在雷区的,后四

3、幅是按钮。位图的ID号:按扭位图:30*30IDB_ANNIU1、IDB_ANNIU2、IDB_ANNIU3IDB_ANNIU4雷区位图:14*14ID号按下图依次为:IDB_BITMAP14。IDB_BITMAP25添加全局变量public:intleftnum;/剩下雷数intleinum;/雷数intjieshu;/结束shortsecond;/计时intsecondstart;/开始计时CBitmapm_Bitmap12;CBitmapm_anniu4;intm_RowCount;行intm_ColCount;列wkhwkh5050;最大雷区voidleizero();virtualC

4、WkhView();画初始界面添加函数)voidCWkhView:leizero()扫描,如果是已经被按下且雷数为0,显示它周围的八个格,并重voidCWkhView:leizero()for(inti=0;im_RowCount;i+)for(intj=0;jm_ColCount;j+)if(wkhij.shumu=0&wkhij.weitu=1)for(intn=i-1;ni+2;n+)for(intm=j-1;m=0&n=0&m180&point.x10&point.yBitBlt(180,10,160,160,&Dc,0,0,SRCCOPY);if(point.x=10)&(point

5、.x=50)&(point.yBitBlt(180,10,160,160,&Dc,0,0,SRCCOPY);secondstart=1;inta=(point.x-10)/15;intb=(point.y-50)/15;if(wkhab.weitu=0|wkhab.weitu=3)if(wkhab.shumu=-1)jieshu=1;KillTimer(1);Invalidate();MessageBox(你失败了);elsewkhab.weitu=1;CRectrect;rect.left=a*15+10;rect.right=a*15+25;rect.top=b*15+50;rect.bo

6、ttom=b*15+65;InvalidateRect(&rect);CView:OnLButtonDown(nFlags,point);voidCWkhView:OnLButtonUp(UINTnFlags,CPointpoint)/鼠标左键松开voidCWkhView:OnLButtonUp(UINTnFlags,CPointpoint)/TODO:Addyourmessagehandlercodehereand/orcalldefaultCDC*pDC=GetDC();CDCDc;if(Dc.CreateCompatibleDC(pDC)=FALSE)AfxMessageBox(Cant

7、createDC);/显示按钮Dc.SelectObject(m_anniu0);pDC-BitBlt(180,10,160,160,&Dc,0,0,SRCCOPY);if(jieshu=1)Dc.SelectObject(m_anniu2);pDC-BitBlt(180,10,160,160,&Dc,0,0,SRCCOPY);if(point.x180&point.x10&point.y=10)&(point.x=50)&(point.y=290)inta=(point.x-10)/15;intb=(point.y-50)/15;if(wkhab.weitu=0|wkhab.weitu=3)

8、wkhab.weitu=2;leftnum-;elseif(wkhab.weitu=2)wkhab.weitu=3;leftnum+;/重画剩下雷数CRectrect2;rect2.left=20;rect2.right=70;rect2.top=10;rect2.bottom=40;InvalidateRect(&rect2);/重画打击格子CRectrect;rect.left=a*15+10;rect.right=a*15+25;rect.top=b*15+50;rect.bottom=b*15+65;InvalidateRect(&rect);CView:OnRButtonDown(n

9、Flags,point);voidCWkhView:OnStart()/计时函数voidCWkhView:OnStart()SetTimer(1,50,NULL);/TODO:Addyourcommandhandlercodeheresecond=0;计时secondstart=0;/l时开始计时/num=0;leftnum=leinum;剩余雷数jieshu=0;/jieshu=l时停止intaa=0;/初始化0for(inti=0;im_RowCount;i+)for(intj=0;jm_ColCount;j+)wkhij.shumu=0;wkhij.weitu=0;/设置40个雷doin

10、tk=rand()%m_RowCount;intl=rand()%m_ColCount;if(wkhkl.shumu!=-l)wkhkl.shumu=-1;aa+;while(aa!=leinum);/给方格赋值for(inta=0;am_RowCount;a+)for(intb=0;bm_ColCount;b+)if(wkhab.shumu=0)for(intc=a-1;ca+2;c+)for(intd=b-1;d=0&c=0&d0)secondstart+;if(secondstart=20)secondstart=1;second+;/重画时间CRectrect3;rect3.left=

11、325;rect3.right=375;rect3.top=10;rect3.bottom=40;InvalidateRect(&rect3);CView:OnTimer(nIDEvent);voidCWkhView:OnDraw(CDC*pDC)框架设置voidCWkhView:OnDraw(CDC*pDC)CWkhDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);/TODO:adddrawcodefornativedatahere/画背景CBrushmybrush1;mybrush1.CreateSolidBrush(RGB(192,192,192);CR

12、ectmyrect1(0,0,1200,800);pDC-FillRect(myrect1,&mybrush1);/画黑框CBrushmybrush;mybrush.CreateSolidBrush(RGB(0,0,0);CRectmyrect(20,10,70,40);pDC-FillRect(myrect,&mybrush);CRectmyrect2(325,10,375,40);pDC-FillRect(myrect2,&mybrush);CPenmypen;CPen*myoldPen;mypen.CreatePen(PS_SOLID,2,RGB(255,255,255);myoldPe

13、n=pDC-SelectObject(&mypen);/画黑框的白线pDC-MoveTo(20,40);pDC-LineTo(70,40);pDC-LineTo(70,10);pDC-MoveTo(325,40);pDC-LineTo(375,40);pDC-LineTo(375,10);/画雷区边线for(inti=0;im_RowCount;i+)for(intj=0;jMoveTo(10+i*15,50+j*15+14);pDC-LineTo(10+i*15,50+j*15);pDC-LineTo(10+i*15+14,50+j*15);pDC-SelectObject(myoldPen

14、);CPenmypen2;CPen*myoldPen2;mypen2.CreatePen(PS_SOLID,1,RGB(0,0,0);myoldPen2=pDC-SelectObject(&mypen2);for(intii=0;iim_RowCount;ii+)for(intjj=0;jjMoveTo(10+ii*15,50+jj*15+14);pDC-LineTo(10+ii*15+14,50+jj*15+14);pDC-LineTo(10+ii*15+14,50+jj*15);pDC-SelectObject(myoldPen2);CDCDc;if(Dc.CreateCompatible

15、DC(pDC)=FALSE)AfxMessageBox(CantcreateDC);/显示按钮Dc.SelectObject(m_anniu0);pDC-BitBlt(180,10,160,160,&Dc,0,0,SRCCOPY);/判断显示什么位图/weitu=1已按下的数字区/weitu=2显示旗/weitu=3显示问号for(inta=0;am_RowCount;a+)for(intb=0;bBitBlt(a*15+10,b*15+50,160,160,&Dc,0,0,SRCCOPY);if(wkhab.weitu=2)Dc.SelectObject(m_Bitmap9);pDC-Bit

16、Blt(a*15+10,b*15+50,160,160,&Dc,0,0,SRCCOPY);if(wkhab.weitu=3)Dc.SelectObject(m_Bitmap10);pDC-BitBlt(a*15+10,b*15+50,160,160,&Dc,0,0,SRCCOPY);/结束if(jieshu=1&wkhab.shumu=-1)Dc.SelectObject(m_Bitmap11);pDC-BitBlt(a*15+10,b*15+50,160,160,&Dc,0,0,SRCCOPY);Dc.SelectObject(m_anniu3);pDC-BitBlt(180,10,160,

17、160,&Dc,0,0,SRCCOPY);/显示黑框里的数字intnOldDC=pDC-SaveDC();pDC-SetTextColor(RGB(255,0,0);pDC-SetBkColor(RGB(0,0,0);CFontfont;if(0=font.CreatePointFont(160,ComicSansMS)AfxMessageBox(CantCreateFont);pDC-SelectObject(&font);CStringstr;if(leftnumTextOut(25,10,str);if(second10)str.Format(00%d,second);elseif(se

18、condTextOut(330,10,str);pDC-RestoreDC(nOldDC);/菜)单修改课程设计内容3.1概要设计游戏的操作方面主要以鼠标为主,当鼠标指针对准未翻开的方块按下左键时即表示翻开方块,当鼠标指针对准未翻开的方块按下右键时即表示标示或疑示地雷,反复按下右键则方块会以未标示f标示f疑似三者关系不断循环。游戏者可以通过地雷区内的数字提示了解以数字为中心的其周边八个方格内所含的地雷数,假若翻开的方块显示数字“1”,则表示以其为中心的周边方块内藏有1个地雷。当按下的方块不是地雷,且周边八个方块也都没有地雷时,方块会以被翻开方块的八个方向将空白方块翻开。3.1.1程序总体框架描

19、述3.1.2程序常用类声明-舉+弋CAboutDIg+弋CMainFrame+弋CWkhApp+弋CWkhDoc+弋CWkhView+弋wkh+_|Globals定义新类:对于雷,我们是单独定义一个类,这样有利于程序的操作classwkhpublic:/显示哪一个位图intweitu;/这个位置相应的值intshumu;视图类变量:接着是在View类添加变量和函数:/剩下雷数intleftnum;/雷数intleinum;/结束intjieshu;/计时shortsecond;/开始计时intsecondstart;/位图数组CBitmapm_Bitmap12;/按扭位图数组CBitmapm_

20、anniu4;/雷区行数intm_RowCount;/雷区列数intm_ColCount;/最大雷区wkhlei5050;3.2主要技术图形的设置消息处理函数视图框架设置扫雷游戏算法菜单的设置。3.3系统设计结果(界面截图、操作流程)1.界面截图:操作流程图设计总结4.1遇到的问题及如何解决随着扫雷游戏的开发完成,本游戏中预期的主要功能也基本实现。本系统以作为前台开发工具,以简单、易用等优点成为开发本系统的首选工具。本论文阐述了扫雷游戏的分析与设计的全过程,并在论文中相应的位置插入了图片、流程图以及一些具有技巧性的程序代码,更加清晰的描述了该游戏是如何实现的。扫雷游戏是一款益智类游戏,该游戏与

21、那些网络游戏和游戏相比,它有编写简单容易上手等特点,非常适合人们在完成工作的时候适当的娱乐要求。这些小游戏大都是以益智和娱乐为目的,不仅给紧张工作的人们以放松,还可以让人们的大脑得到开发。由于我学习VisualC+6.0和MFC的时间比较短,其中的很多知识还没有了解和掌握,当然出现了很多错误,在设计过程中出现鼠标不响应操作的现象,这是因为定义鼠标函数时出现了错误;在设计过程中对位图的设置不够了解,总是不能调用位图,通过百度,才知道缺少了一部分代码;对于分号、引号的符号出现了不少的错误,主要是中英文切换时没注意,导致编译出错;完成程序之后,对程序进行编译,系统总是提示链接出错,经过仔细检查没有找

22、到语句或定义错误,后来发现是电脑问题,我在任务管理器中结束wkh.exe。再次链接,错误就消除了。4.2体会在扫雷游戏中有些功能还不够完善,例如在扫雷游戏中不能实现游戏难度的选择和游戏的保存。希望在以后的工作和学习中不断的充实自己的知识结构,把扫雷游戏的功能进一步完善,使它成为一个更具有实用价值的游戏软件,同时也恳请老师给予批评指正。源代码/MainFrm.cpp:implementationoftheCMainFrameclass/#includestdafx.h#includewkh.h#includeMainFrm.h#ifdef_DEBUG#definenewDEBUG_NEW#und

23、efTHIS_FILEstaticcharTHIS_FILE=_FILE_;#endif/CMainFrameIMPLEMENT_DYNCREATE(CMainFrame,CFrameWnd)BEGIN_MESSAGE_MAP(CMainFrame,CFrameWnd)/AFX_MSG_MAP(CMainFrame)ON_WM_CREATE()/AFX_MSG_MAPEND_MESSAGE_MAP()staticUINTindicators=ID_SEPARATOR,/statuslineindicatorID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICA

24、TOR_SCRL,;/CMainFrameconstruction/destructionCMainFrame:CMainFrame()/TODO:addmemberinitializationcodehereCMainFrame:CMainFrame()intCMainFrame:OnCreate(LPCREATESTRUCTlpCreateStruct)if(CFrameWnd:OnCreate(lpCreateStruct)=-1)return-1;/*if(!m_wndToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS

25、_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)|!m_wndToolBar.LoadToolBar(IDR_MAINFRAME)TRACE0(Failedtocreatetoolbarn);return-1;/failtocreateif(!m_wndStatusBar.Create(this)|!m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT)TRACE0(Failedtocreatestatusbarn);return-1

26、;/failtocreate/TODO:Deletethesethreelinesifyoudontwantthetoolbarto/bedockablem_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);DockControlBar(&m_wndToolBar);*/HICONhicon;hicon=AfxGetApp()-LoadIcon(IDI_WKH);SetIcon(hicon,TRUE);return0;BOOLCMainFrame:PreCreateWindow(CREATESTRUCT

27、&cs)if(!CFrameWnd:PreCreateWindow(cs)returnFALSE;/TODO:ModifytheWindowclassorstylesherebymodifying/theCREATESTRUCTcscs.style=WS_SYSMENU;/cs.dwExStyle=cs.dwExStyle|WS_EX_TOPMOST;/cs.style=WS_SYSMENU|WS_OVERLAPPED|WS_MINIMIZEBOX;/;/设置窗口大小:400*340cs.cx=400;cs.cy=340;returnTRUE;/CMainFramediagnostics#if

28、def_DEBUGvoidCMainFrame:AssertValid()constCFrameWnd:AssertValid();voidCMainFrame:Dump(CDumpContext&dc)constCFrameWnd:Dump(dc);#endif/_DEBUG/CMainFramemessagehandlers/wkhView.h:interfaceoftheCWkhViewclass/#if!defined(AFX_WKHVIEW_H_A35B457D_4DC0_4B5B_A614_EAF8D78165BF_INCLUDED_)#defineAFX_WKHVIEW_H_A3

29、5B457D_4DC0_4B5B_A614_EAF8D78165BF_INCLUDED_#if_MSC_VER1000#pragmaonce#endif/_MSC_VER1000classwkhpublic:intweitu;intshumu;classCWkhView:publicCViewprotected:/createfromserializationonlyCWkhView();DECLARE_DYNCREATE(CWkhView)/Attributespublic:CWkhDoc*GetDocument();/Operationspublic:/Overrides/ClassWiz

30、ardgeneratedvirtualfunctionoverrides/AFX_VIRTUAL(CWkhView)public:virtualvoidOnDraw(CDC*pDC);/overriddentodrawthisviewvirtualBOOLPreCreateWindow(CREATESTRUCT&cs);protected:virtualBOOLOnPreparePrinting(CPrintInfo*pInfo);virtualvoidOnBeginPrinting(CDC*pDC,CPrintInfo*pInfo);virtualvoidOnEndPrinting(CDC*

31、pDC,CPrintInfo*pInfo);/AFX_VIRTUAL/Implementationpublic:intleftnum;/剩下雷数intleinum;/雷数intjieshu;/结束shortsecond;/计日寸intsecondstart;/开始计时CBitmapm_Bitmap12;CBitmapm_anniu4;intm_RowCount;行intm_ColCount;列wkhwkh5050;最大雷区voidleizero();virtualCWkhView();#ifdef_DEBUGvirtualvoidAssertValid()const;virtualvoidDu

32、mp(CDumpContext&dc)const;#endifprotected:/Generatedmessagemapfunctionsprotected:/AFX_MSG(CWkhView)afx_msgvoidOnTimer(UINTnIDEvent);afx_msgvoidOnRButtonDown(UINTnFlags,CPointpoint);afx_msgvoidOnLButtonDown(UINTnFlags,CPointpoint);afx_msgintOnCreate(LPCREATESTRUCTlpCreateStruct);afx_msgvoidOnStart();a

33、fx_msgvoidOnLButtonUp(UINTnFlags,CPointpoint);/AFX_MSGDECLARE_MESSAGE_MAP();#ifndef_DEBUG/debugversioninwkhView.cppinlineCWkhDoc*CWkhView:GetDocument()return(CWkhDoc*)m_pDocument;#endif/AFX_INSERT_LOCATION/MicrosoftVisualC+willinsertadditionaldeclarationsimmediatelybeforethepreviousline.#endif/!defi

34、ned(AFX_WKHVIEW_H_A35B457D_4DC0_4B5B_A614_EAF8D78165BF_INCLUDED_)/wkhView.cpp:implementationoftheCWkhViewclass/#includestdafx.h#includewkh.h#includewkhDoc.h#includewkhView.h#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE=_FILE_;#endif/CWkhViewIMPLEMENT_DYNCREATE(CWkhView,CView)BEGI

35、N_MESSAGE_MAP(CWkhView,CView)/AFX_MSG_MAP(CWkhView)ON_WM_TIMER()ON_WM_LBUTTONDOWN()ON_WM_RBUTTONDOWN()ON_WM_CREATE()ON_COMMAND(ID_START,OnStart)ON_WM_LBUTTONUP()/AFX_MSG_MAP/StandardprintingcommandsON_COMMAND(ID_FILE_PRINT,CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT,CView:OnFilePrint)ON_COMMAN

36、D(ID_FILE_PRINT_PREVIEW,CView:OnFilePrintPreview)END_MESSAGE_MAP()/CWkhViewconstruction/destructionCWkhView:CWkhView()/TODO:addconstructioncodeherefor(intii=0;ii16;ii+)m_Bitmapii.LoadBitmap(IDB_BITMAP14+ii);for(intjj=0;jj4;jj+)m_anniujj.LoadBitmap(IDB_ANNIU1+jj);second=0;计时secondstart=0;/l时开始计时m_Row

37、Count=25;行数m_ColCount=16;列数leinum=80;leftnum=leinum;剩余雷数jieshu=0;/jieshu=1时停止intaa=0;/初始化0for(inti=0;im_RowCount;i+)for(intj=0;jm_ColCount;j+)wkhij.shumu=0;wkhij.weitu=0;/获取当前时间CTimetime=GetCurrentTime();ints;/获取秒数s=time.GetSecond();/设置40个雷do/以当前秒数为产生随机算法intk=(rand()*s)%m_RowCount;intl=(rand()*s)%m_

38、ColCount;if(wkhkl.shumu!=-1)wkhkl.shumu=-1;aa+;while(aa!=leinum);/给方格赋值,计算雷数for(inta=0;am_RowCount;a+)for(intb=0;bm_ColCount;b+)if(wkhab.shumu=0)for(intc=a-1;ca+2;c+)for(intd=b-1;d=0&c=0&dFillRect(myrect1,&mybrush1);/画黑框CBrushmybrush;mybrush.CreateSolidBrush(RGB(0,0,0);CRectmyrect(20,10,70,40);pDC-F

39、illRect(myrect,&mybrush);CRectmyrect2(325,10,375,40);pDC-FillRect(myrect2,&mybrush);CPenmypen;CPen*myoldPen;mypen.CreatePen(PS_SOLID,2,RGB(255,255,255);myoldPen=pDC-SelectObject(&mypen);/画黑框的白线pDC-MoveTo(20,40);pDC-LineTo(70,40);pDC-LineTo(70,10);pDC-MoveTo(325,40);pDC-LineTo(375,40);pDC-LineTo(375,

40、10);/画雷区边线for(inti=0;im_RowCount;i+)for(intj=0;jMoveTo(10+i*15,50+j*15+14);pDC-LineTo(10+i*15,50+j*15);pDC-LineTo(10+i*15+14,50+j*15);pDC-SelectObject(myoldPen);CPenmypen2;CPen*myoldPen2;mypen2.CreatePen(PS_SOLID,1,RGB(0,0,0);myoldPen2=pDC-SelectObject(&mypen2);for(intii=0;iim_RowCount;ii+)for(intjj

41、=0;jjMoveTo(10+ii*15,50+jj*15+14);pDC-LineTo(10+ii*15+14,50+jj*15+14);pDC-LineTo(10+ii*15+14,50+jj*15);pDC-SelectObject(myoldPen2);CDCDc;if(Dc.CreateCompatibleDC(pDC)=FALSE)AfxMessageBox(CantcreateDC);/显示按钮Dc.SelectObject(m_anniu0);pDC-BitBlt(180,10,160,160,&Dc,0,0,SRCCOPY);/判断显示什么位图/weitu=1已按下的数字区/

42、weitu=2显示旗/weitu=3显示问号for(inta=0;am_RowCount;a+)for(intb=0;bBitBlt(a*15+10,b*15+50,160,160,&Dc,0,0,SRCCOPY);if(wkhab.weitu=2)Dc.SelectObject(m_Bitmap9);pDC-BitBlt(a*15+10,b*15+50,160,160,&Dc,0,0,SRCCOPY);if(wkhab.weitu=3)Dc.SelectObject(m_Bitmap10);pDC-BitBlt(a*15+10,b*15+50,160,160,&Dc,0,0,SRCCOPY)

43、;/结束if(jieshu=1&wkhab.shumu=-1)Dc.SelectObject(m_Bitmap11);pDC-BitBlt(a*15+10,b*15+50,160,160,&Dc,0,0,SRCCOPY);Dc.SelectObject(m_anniu3);pDC-BitBlt(180,10,160,160,&Dc,0,0,SRCCOPY);/显示黑框里的数字intnOldDC=pDC-SaveDC();pDC-SetTextColor(RGB(255,0,0);pDC-SetBkColor(RGB(0,0,0);CFontfont;if(0=font.CreatePointF

44、ont(160,ComicSansMS)AfxMessageBox(CantCreateFont);pDC-SelectObject(&font);CStringstr;if(leftnumTextOut(25,10,str);if(second10)str.Format(00%d,second);elseif(secondTextOut(330,10,str);pDC-RestoreDC(nOldDC);/CWkhViewprintingBOOLCWkhView:OnPreparePrinting(CPrintInfo*pInfo)/defaultpreparationreturnDoPre

45、parePrinting(pInfo);voidCWkhView:OnBeginPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/)/TODO:addextrainitializationbeforeprintingvoidCWkhView:OnEndPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/)/TODO:addcleanupafterprinting/CWkhViewdiagnostics#ifdef_DEBUGvoidCWkhView:AssertValid()constCView:AssertValid();void

46、CWkhView:Dump(CDumpContext&dc)constCView:Dump(dc);CWkhDoc*CWkhView:GetDocument()/non-debugversionisinlineASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CWkhDoc);return(CWkhDoc*)m_pDocument;#endif/_DEBUG/CWkhViewmessagehandlersvoidCWkhView:OnTimer(UINTnIDEvent)/TODO:Addyourmessagehandlercodehereand/orcall

47、default/结束,返回if(jieshu=1)return;/显示个数为0的方格leizero();/计时if(secondstart0)secondstart+;if(secondstart=20)secondstart=1;second+;/重画时间CRectrect3;rect3.left=325;rect3.right=375;rect3.top=10;rect3.bottom=40;InvalidateRect(&rect3);CView:OnTimer(nIDEvent);voidCWkhView:OnLButtonDown(UINTnFlags,CPointpoint)/TO

48、DO:Addyourmessagehandlercodehereand/orcalldefault/获取指针pdcCDC*pDC=GetDC();CDCDc;if(Dc.CreateCompatibleDC(pDC)=FALSE)AfxMessageBox(CantcreateDC);/显示按下按钮if(point.x180&point.x10&point.yBitBlt(180,10,160,160,&Dc,0,0,SRCCOPY);if(point.x=10)&(point.x=50)&(point.yBitBlt(180,10,160,160,&Dc,0,0,SRCCOPY);secon

49、dstart=1;inta=(point.x-10)/15;intb=(point.y-50)/15;if(wkhab.weitu=0|wkhab.weitu=3)if(wkhab.shumu=-1)jieshu=1;KillTimer(1);Invalidate();MessageBox(你失败了);elsewkhab.weitu=1;CRectrect;rect.left=a*15+10;rect.right=a*15+25;rect.top=b*15+50;rect.bottom=b*15+65;InvalidateRect(&rect);CView:OnLButtonDown(nFlags,point);voidCWkhView:OnRButtonDown(UINTnFlags,CPointpoint)/TODO:Addyourmessagehandlercodehereand/o

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论