C语言程序设计课程设计贪吃蛇.docx

上传人:夺命阿水 文档编号:1224866 上传时间:2024-04-05 格式:DOCX 页数:23 大小:144.44KB
返回 下载 相关 举报
C语言程序设计课程设计贪吃蛇.docx_第1页
第1页 / 共23页
C语言程序设计课程设计贪吃蛇.docx_第2页
第2页 / 共23页
C语言程序设计课程设计贪吃蛇.docx_第3页
第3页 / 共23页
C语言程序设计课程设计贪吃蛇.docx_第4页
第4页 / 共23页
C语言程序设计课程设计贪吃蛇.docx_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《C语言程序设计课程设计贪吃蛇.docx》由会员分享,可在线阅读,更多相关《C语言程序设计课程设计贪吃蛇.docx(23页珍藏版)》请在课桌文档上搜索。

1、辽宁工业大学C+语言程序设计课程设计(论文)题目:贪吃蛇院(系):软件学院专业班级:软件工程Hl班学号:;学生姓名:指导教师:翟宝峰教师职称:副教授起止时间:201L12.12-2011.12.25课程设计(论文)任务及评语学号学生姓名专业班级软件工程Ill班课程设计(论文)题目贪吃蛇课程设计(论文)任务程序设计的任务与要求:(1) .掌握面向对象程序设计语言C+的基本语法(2) .掌握C+面向对象设计的思想(3) .掌握VC+6.0与DEVC+开发工具的使用(4) .运用标准C+规范设计应用程序设计过程中,要严格遵守设计的时间安排,听从指导教师的指导。正确地完成上述内容,规范完整地撰写出设计

2、报告。指导教师评语及成绩成绩:指导教师签字:年月日教研室:软件教研室院(系):软件学院目录第1章课程设计目的与要求11.1 设计目的11.2 实验环境11.3 预备知识1上4设的要、求.二12-Ft,22.1课题描述22.2系统设计22.2.1功能分析22.2.2面向对象设计22.2.2类成员描述82.3程序实现112.3.1源码分析11*2.3.2、运行结果18第3章课程设十总结1920第1章课程设计目的与要求1.1设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在

3、下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程C+语言教程的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。(3)利用所学知识,开发小型应用系统,掌握运用C+语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。(5)掌握面向对象程序设计的方法。(6)熟练掌握C+语言的基本语法,灵活运用各种数据类型。(7)进一步掌握在集成环境下如何调试程序和修改程序。1.2 实验环境硬件要

4、求能运行WindoWS操作系统的微机系统。C+语言应用程序开发软件使用:VC+系统,或其他C+语言应用程序开发软件。1.3 预备知识熟悉C+语言程序设计的基本知识及VC+编辑器的使用方法。设计要求1.仔细分析设计题目,画出程序流程图,编写程序源代码。2 .积极上机调试源程序,增强编程技巧与调程能力。3 .认真书写课程设计预习报告,课程设计说明书。4 .遵守课程设计要求和机房管理制度,服从指导教师的安排,确保课程设计的顺利完成课程设计内容。第2章课程设计内容2. 1课题描述贪吃蛇是家喻户晓的益智类小游戏,选择这个题目一是为了将自己的所学知识加以运用,二是一直以来贪吃蛇这个游戏就深深地吸引着我,它

5、的制作方法对于以前的我而言都是很神秘的。我希望通过自己的所学知识把它剖析开来,真真正正的了解它的本质和精髓。虽然我的编程能力不是很强,但是我有信心,在这次学习中我将从实践和实际的项目中提高自己的编程能力。因此我选定了这个题目。2.2系统设计2.1功能分析1.贪吃蛇的基本玩法:即可以用上、下、左、右键控制游戏区蛇的运动方向,使之向着食物方向运动,并吞吃食物使身体增长;2 .调节蛇的运动速度:即用户可以调节蛇的运动速度来选择不同的难度;3 .选择关卡功能:即游戏分多个难度级别(关卡),用户可以选择不同的难度级别进行游戏;4 .背景颜色变换功能:即用户可以选择一种自己喜欢的颜色作为游戏区的背景色,避

6、免对一种颜色产生视觉疲劳。2.2.2面向对象设计1类的设计本程序设计了IACtionHandIer类、IGraPhiCOUt类、CTraCeFn类、CSnakeGalne类、CSnakeviCW类、CSCOrCBoardDlg类、CChangeSPeedDIg类等。IActionHandler类作用:用于处理蛇的运动等操作。IGraphicOut类作用:显示面板信息。CTraceFn类作用:描绘踪迹。CSnakeGame类作用:控制游戏。CSnakeVieW类作用:游戏界面控制。CScoreBoardDlg类作用:得分信息控制QCChangeSpeedDlg类作用:移动速率控制。CMainFr

7、ame类作用:主窗口设置。基类为IActionHandler类、IGraPhiCOUt类、CTraceFn类。派生类CSnakeGame类由IActionHandler类继承,CSnakeView类由IGraPhiCOUt类继承。2. UML类图CSnakeGame-m_yFood:int-m_xFood:int-m_speed:int-m-mousepen:bool-m_timerCount:int-m_score:int-m_curDir:Direction- m_ySize:int- m_xSize:int- m_yPos:int- m_xPos:int- m_yPosBody:int-

8、 mxPosBody:int+gelSpeed():int+changeSpeed(speed:int):void+leftMove():void+rightMove():void+upMove():void+downMove():void+timeUp():void+exit():void+draw():void-CSnakeGame(pGO:IGraphicOut)-CSnakeGame()图2.1CSnakeGame类IAcrtionHandle#mpG0:IGraphicOu-IActionHandler(pGO:IGraphicOut)-IActionHandler()+getSpe

9、ed():int+changeSpeed(speed:int):void+leftMove():void+rightMove():void+downMove():void+upMove():void+timeUp():void+exit():void+draw():void图2.2IAcrtionHandle类IGraphicOut#mpDC:void+scoreBoard(scoreMessages:char):void+redraw():void+drawHead(type:int,x:int,y:int):void+drawBody(x:int,y:int):void+drawFood(

10、type:int,x:int,y:int):void+drawHorzWall(x1:int,x2:int,y:int):void+drawVertWalI(x:int,yl:int,y2:int):void+drawScore(score:+setDisplaySize(width:int,height:int):void+close():void-IGraphicOut()-IGraphicOut()图2.3IGraPhiCOUt类CSnakeVieW-m_wTimerRes:UINT-m_timerID:int-m_pActionHandler:IActionHandler-m_size

11、DB:CSize-m_pBmpDB:CBitmap-m_pDCMemDB:CDC-m_numCellsY:int-mnumCellsX:int-CSnakeView()CppMacro-DECLARE_DYNCREATE(CSnakeView)-myTimerCallback(wTimerID:UINT,msg:UINT,dwUser:DWORD,dwl:DWORD,dw2:DWORD):void-CSnakeView()+OnDraw(pDC:CDC):void+GetDocument():CSnakeDoc+PreCreateWindow(cs:CREATESTRUCT):BOOL+Onl

12、nitialUpdateO:void+scoreBoard(scoreMessages:char):void+close():void+redraw():void+SetActionHandler(pHandler:IActionHandler):void+setDisplaySize(width:int,height:int):void-drawSprite(pDC:CDC,resID:int,ix:int,iy:int):void+drawScore(score:int):void+drawHorzWall(x1:int,x2:int,y:int):void+drawVertWall(x:

13、int,yl:int,y2:int):void+drawFood(type:int,x:int,y:int):void+drawBody(x:int,y:int):void+drawHead(type:int,x:int,y:int):void+AssertValidO:void+Dump(dc:CDumpContext):void-closeWindow():void#OnSize(nType:UINT,ex:int,cy:int):void#OnPaint():void#OnDestroy():void#OnChangeLevel():void#OnPreparePrinting(pInf

14、o:CPrintInfo):BOOL#OnBeginPrinting(pDC:CDC,plnfo:CPrintInfo):void#OnEndPrinling(pDC:CDC,plnfo:CPrintInfo):void#OnKeyDown(nChar:UINT,nRepCnt:UINT,nFlags:UINT):void#0nTimer(nIDEvent:UINT):void#OnCreate(lpCreateStnicl:LPCREATESTRUCT):ini图2.4CSnakeView类CTraceFn-nlndent:ini-AfxTrace(lpszFormat:LPCTSTR,.)

15、:AFX_CDECL-OutputDebugStringW95(lpOutputString:1.PCTSTR,.):void-CTraceFn()-CTraceFn()图2.5CTraceFn类CMainFrame#m_WndStalUSBar:CStatusBar#mwndToolBar:CToolBar-CMainFrame()CppMacro-DECLARE_DYNCREATE(CMainFrame)+PreCreateWindow(cs:CREATESTRUCT):BOOL+adjustDisplaySize(width:int,height:int):void-CMainFrame

16、()+AssertValid():void+Dump(dc:CDumpContext):void#OnCreate(lpCreateStruct:LPCREATESTRUCT):int#OnSysCommand(nID:UINT,IParam:LPARAM):void#OnAppExit():void#OnAppAbout():void#OnClose():voidCppMacroDECLAREMESSAGEMAP()图2.6CMainFrame类CChangeSpeedDlg+m-speed:int-CChangeSpeedDlg(pParent:CWnd)#DoDataExchange(p

17、DX:CDataExchange):void#OnInitDialog():BOOLVVCPPMaClo-DECLAREMESSAGEMAP()图2.7CChangeSPeedDlg类CScoreBoardDlg+m-scoreBoardMessages:CString-CScoreBoardDlg(pParent:CWnd)CppMacro-DECLARE_MESSAGE_MAP()#DoDataExchange(pDX:CDataExchange):void图2.8CScoreBoardDIg类整体UML类图如下:图2.6整体UML图3.总体流程图图2.7总体流程图2. 2.2类成员描述1

18、. CSnakeGame类:描述控制游戏。数据成员:myFood的类型为Int,表示食物的横坐标。m_xFood的类型为int,表示食物的纵坐标。m_speed的类型为int,表示食物出现与消失的速度。mmouse0pen的类型为bool,表示管理音乐是否开启。m_timerCount的类型为int,表示计时。m_score的类型为int,表示计分。mySize的类型为int,表示单元格在背景中的相对横坐标。m_xSize的类型为int,表示单元格在背景中的相对纵坐标m_yPos的类型为int,表示蛇头位置的横坐标。mXPOS的类型为int,表示蛇头位置的纵坐标。m_yPosBody的类型为i

19、nt,表示蛇身的横坐标。m_xPosBody的类型为int,表示蛇身的纵坐标。成员函数:函数getSpeed():蛇运动的函数,返回值类型为int函数ChangeSPeed(intspeed):改变蛇的运动速度,返回值类型为VOid函数IeftMove():蛇向左移动的函数,判断来移动蛇头,返回值类型void函数rightMove():蛇向右移动的函数,判断移动蛇头,返回值类型void函数UPMOVe():蛇向上移动的函数,判断移动蛇头,返回值类型Void函数downMove():蛇向下移动的函数,判断移动蛇头,返回值类型void函数timeUp():计算时间的函数,返回值类型void函数ex

20、it。:判断停止的函数,返回值类型void函数draw。:画围墙,返回值类型Void函数CSnakeGame(IGraPhiCoUt*constpGO):构造函数函数VirtUaICSnakeGame():析构函数2. CSnakeVieW类:游戏界面控制。数据成员:mWTinIerReS的类型为UINT,表示随机数发生器。m_timerID的类型为int,表示显示时间。m_pActionHand1er的类型为void,表示蛇移动的控制。m_sizeDB的类型为void,表示显示大小m_pDCMemDB的类型为void,表示计分板信息m_numCellsY的类型为int,表示计分板的横坐标m_

21、numCellsX的类型为int,表示计分板的纵坐标成员函数:函数OnDraW(CDC*pDC):绘制游戏背景、游戏文字以及控制蛇的样式,返回值类型为VOid函数PreCreateWindoW(CREATESTRUCT&cs):重新创建窗口并复制构造函数,返回值类型为BOOL函数OnInitiaIUPdate():初始化贪吃蛇游戏参数,返回值类型为Void函数OnPreParePrinting():暂停游戏,返回值类型为BOOL函数OnBeginPrinting():开始游戏,返回值类型为VOid函数OnEndPrinting():退出游戏,返回值类型为Void函数ScoreBoard():显

22、示分数面板,返回值类型为void函数ClOSe():图形结束,返回值类型为Void函数redraw。:重绘游戏窗口,返回值类型为VOid函数SetActionHandIerO:初始化贪吃蛇游戏参数,返回值类型为void函数SetDiSPIaySiZe():设置显示大小,返回值类型为VOid函数CIraWSCOre(intscore):绘制分数,返回值类型为VOid函数drawVertWa11():绘制垂直墙,返回值类型为Void函数drawHorzWa11():绘制水平墙,返回值类型为Void函数drawFood():初始化贪吃蛇的食物使其随机生成,返回值类型VOid函数drawBody(in

23、tx,inty):绘制蛇身,返回值类型为Void函数drawHead():绘制蛇头位置,返回值类型为VOid函数CSnakeView():析构函数函数OnSiZe():设置大小,返回值类型为Void函数OnCOnteXtMenU():设置菜单,返回值类型为VOid函数OnCreate():创建菜单函数,返回值类型为VOid函数OnDCStrOy():删除菜单函数,void函数OnTinIer(UINTnIDEvent):判断蛇是否死亡,void函数OnKeyDOWn():用函数来实现键盘消息的传递,返回值类型为VOid函数OnChangeLeVeI():等级设置,返回值类型为Void3. CM

24、ainFrame类:主窗口设置。数据成员:mWndStatusBar:表示状态栏m_wndToolBar:表示工具栏成员函数:函数CMainFrame():设置主窗口的函数函数PreCreateWindOW():重新创建窗口,返回值类型为BOoL函数adjustDisplaySizc():调整显示尺寸,返回值类型为VOid函数AssertValidO:判断是否有效,返回值类型为void函数OnSysCommand():程序命令的控制,返回值类型为void函数OnAPPEXit():游戏退出,返回值类型为Void函数OnCloSe():图形结束,返回值类型为VOid4. CChangeSPeed

25、Dlg类:移动速率控制。数据成员:m_spced的类型为int,表示改变蛇的速度。成员函数:函数CChangeSPeedDIg():改变蛇的运动方向,返回值类型为Void函数DoDataEXChange():记录改变的信息,返回值类型为Void,访问控制属性为保护类型函数OnlnitDialOg():初始化对话框,返回值类型为BoOL,访问控制属性为保护类型5. CSCOreBOardDIg类:得分信息控制。数据成员:m.ScoreBoardMessages:表示计分板分数成员函数:函数CSCoreBoardDIg(PParent:CWnd):得分管理,返回值类型为VOid函数DODataEX

26、Change():记录分数改变,返回值类型为VOid,访问控制属性为保护类型2.3程序实现2.3.1源码分析/CSnakeGame类的成员函数的实现CSnakeGame:CSnakeGame(IGraPhiCe)UI*constpGO):IActionHandlerCpGO),m_xSize(15),m_ySize(15),m_xPos(m_xSize/2),m_yPos(m_ySize/2),m_xPosBody(m_xPos+1),m_yPosBody(m_yPos),m_curDir(left),m_score(12345),m_timerCount(0),m_mouseOpen(fal

27、se),m_speed(5),m_xFood(-l),m_yFood(-1)srand(time(OL);pGO-setDisplaySize(m_xSize,m_ySize);m_xFood=rand()%m_xSize;m_yFood=rand()%m_ySize;析构法数CSnakeGame:-CSnakeGameO)蛇向左移动的函数,判断移动蛇头voidCSnakeGame:JeftMoveOif(m_curDir!=right)if(m_xPos0)m_curDir=left;)蛇向右移动的法数,判断移动蛇头voidCSnakeGame:rightMove()if(m_curDir!

28、=left)if(m_xPosm_xSize-l)m_curDir=right;)蛇向上移动的法数,判断来移动蛇头voidCSnakeGame:upMove()if(m_curDir!=down)if(m_yPos0)m_curDir=down;/用键盘来控制晶的移动,并计算时间voidCSnakeGame:timeUp()if(+m_timerCount=10*m_speed)/10*m_speed*5ms金头当前要移动的方向,根据移动方向改变蛇头坐标值switch(m_curDir)caseleft:if(m_xPos0)m_xPos;m_xPosBody=m_xPos+1;m_yPosB

29、ody=m_yPos;break;caseup:if(m_yPosm_ySize-l)m_yPos+;m_yPosBody=m_yPos-1;m_xPosBody=m_xPos;break;caseright:if(m_xPos0)m_yPos;m_yPosBody=m_yPos+1;m_xPosBody=m_xPosJbreak;/判断是否吃到食物,并计算分数if(m_xPos=m_xFood)&(m_yPos=m_yFood)m_score+=100;m_xFood=rand()%m_xSize;m_yFood=rand()%m_ySize;m_museOpen=false;m-pGO-r

30、edraw();m_timerCount=0;elseif(m_timerCount=10/2*m_speed)m_mousepen=true;m-pGO-redraw();判断停止后函数voidCSnakeGame:exit()m_pGO-scoreBoard(ttHighestScoresn1.JohnSnakettl2345678n2.RobEpsontt98765nnttGoodbye!);/画围墙voidCSnakeGame:draw()if(m_xFood=0)&(m_yFood=0)m_pGO-drawFood(IGraphicOut:flower,m_xFood,m_yFood

31、);if(m_mouseOpen)m_pGO-drawHead(m_curDir+10,m_xPos,m_yPos);elsem_pGO-drawHead(m_curDir,m_xPos,m_yPos);m_pGO-drawBody(m_xPosBody,m_yPosBody);m_pGO-drawScore(m_score);/只有演示,没有碰撞测试m-pGO-drawHorzWalI(3,5,2);m-pG0-drawVertWall(8,O,5);/改变品的运动速度voidCSnakeGame:xhangeSpeed(intspeed)m_speed=speed;/蛇质运动函数intCS

32、nakeGame:getSpeed()returnm_speed;CSnakeVieW类的实现CSnakeView:CSnakeView():m_pDCMemDB(O),m_pBmpDB(0),IB-PActionHandler(O),m_numCellsX(lO),m_numCellsY(10),m_timerID(O)析构函反CSnakeView:-CSnakeView()if(m-pDCMemDB)deletem_pDCMemDB;if(m_pBmpDB)deletem_pBmpDB;if(m_pActionHandler)deletem_pActionHandler;/重新创建窗口BO

33、OLCSnakeView:PreCreateWindow(CREATESTRUCT&cs)/通过这里修改窗口类returnCView:PreCreateWindow(Cs);voidCSnakeView:OnDraw(CDC*pDC)CSnakeDoc*pDoc=GetDocumentO;ASSERT_VALID(pDoc);m_pDC=pDC;CRectrect;GetClientRect(&rect);/绘制边界CBitmapbmpBrick;bmpBrick.LoadBitmap(IDB-BRICK);CBrushbrBrick;brBrick.CreatePatternBrush(Se

34、lectObject(&brBrick);pDC-PatBlt(rect.left,rect.top,rect.Width(),rect.Height(),PATCOPY);pDC-SelectObject(pBrOld);/绘制面板内部CBitmapbmpCell;bmpCell.LoadBitmap(IDB_CELL);CBrushbrCell;brCel1.CreatePatternBrush(&bmpCel1);pBrOld=pDC-SelectObject(&brCell);pDC-PatBlt(rect.left+32,rect.top+32+32,rect.Width()-64,

35、rect.Height()-64-32,PATCOPY);pDC-SelectObject(pBrOld);/绘制计分牌drawSprite(pDC,IDB_SC0REB0ARD,(int)(m_numCellsX-9)/2.0+1)*32,5);pDC-SetBkMode(TRANSPARENT);pDC-TextOut(int)(m_numCellsX-9)/2.0+2)*32,16,Scores:);/绘制所有游戏组件if(m_pActionHandler)m_pActionHandler-draw();m_pDC=O;暂停游戏BOOLCSnakeView:OnPreparePrinti

36、ng(CPrintInfo*plnfo)returnDoPreparePrinting(pInfb);开始游戏voidCSnakeView:OnBeginPrinting(CDC*/*pDC*/,CPrintInfo*/*plnfo*/)为开始游戏做好准备,所以在开始进行游戏之前,游戏界面就已经显示完整。/退出游戏voidCSnakeViewOnEndPrinting(CDC*/*pDC*/,CPrintInfo*/*plnfo*/)/结束后的清理)#ifdef_DEBUG判断是否有效voidCSnakeView:AssertValidOconstCView:AssertValidO;)初始化

37、贪吃蛇游戏参数voidCSnakeView:OnInitialUpdate()CView:OnInitialUpdate();CClientDCdcClient(this);OnPrepareDC(&dcClient);m_pDCMemDB=newCDC;m_pDCMemDB-CreateCompatibleDC(&dcClient);m_pDCMemDB-SetMapMode(dcClient.GetMapMode();设置关小voidCSnakeView:OnSize(UINTnType,intex,intcy)CView:OnSize(nType,ex,cy);CRectrect;Get

38、ClientRect(&rect);/设计坐标/初始化设计坐标if(rect.right=m_sizeDB.cx)&(rect.bottomm_sizeDB.cx)m_sizeDB.cx=rect.right;if(rect.bottomm_sizeDB.cy)m_sizeDB.cy=rect.bottom;CClientDCdcClient(this);OnPrepareDC(&dcClient);/依赖adjustScrollSizes()if(m_pBmpDB)deletem_pBmpDB;m_pBmpDB=newCBitmap;m_pBmpDB-CreateCompatibleBitm

39、ap(&dcClient,m_sizeDB.cx,m_sizeDB.cy);绘制金身voidCSnakeView:drawBody(intx,inty)if(m-pDC)drawSprite(m_pDC,IDB_BODY,(x+1)*32,(m-numCellsY-y+1)*32);初始化fruit=O,flower=1voidCSnakeView:drawFood(inttype,intx,inty)if(m-pDC)switch(type)casefruit:drawSprite(m_pDC,IDB_FRUIT,(x+1)*32,(m-numCellsY-y+1)*32);break;ca

40、seflower:drawSprite(m_pDC,IDB-FLOWER,(x+1)*32,(m-numCellsY-y+1)*32);break;/绘制水平墙voidCSnakeView:drawHorzWall(intxl,intx2,inty)intxlCoord=(x1+1)*32;intx2Coord=(x2+1)*32;intyCoord=(m_numCellsY-y+l)*32;CRectrect(x1Coord,yCoord,x2Coord+32,yCoord+32);if(m_pDC)CBitmapbmpBrick;bmpBrick.LoadBitmap(IDB_BRICK)

41、;CBrushbrBrick;brBrick.CreatePatternBrush(&bmpBrick);CBrush*pBrOld=m_pDC-SelectObject(&brBrick);m-pDC-PatBlt(rect.left,rect.top,rect.Width(),rect.Height(),PATCOPY);m-pDC-SelectObject(pBrOld);/绘制垂直皤voidCSnakeViewIidrawVertWall(intx,intyl,inty2)intxCoord=(x+1)*32;intylCoord=(mIUmCenSY-y1+1)*32;inty2Co

42、ord=(m_numCellsY-y2+l)*32;CRectrect(xCoord,y2Coord,xCoord+32,ylCoord+32);if(m_pDC)CBitmapbmpBrick;bmpBrick.LoadBitmap(IDB_BRICK);CBrushbrBrick;brBrick.CreatePatternBrush(&bmpBrick);CBrush*pBr01d=m_pDC-SelectObject(&brBrick);m-pDC-PatBlt(rect.left,rect.top,rect.Width(),rect.Height(),PATCOPY);m-pDC-Se

43、lectObject(pBrOld);绘制分数voidCSnakeView:drawScore(intscore)charScoreBuff100;if(m_pDC)wsprintf(scoreBuf,%d,score);m_pDC-TextOut(int)(m_numCellsX-9)/2.0+2)*32+70,16,scoreBuf);/设置显示大小voidCSnakeView:setDisplaySize(intwidth,intheight)m_numCellsX-width;m_numCellsY-height;(CMainFrame*)AfxGetMainWnd()-adjustDisplaySize(width,height);voidCSnakeView:SetActionHandler(IActionHandler*pHandler)m_pActionHandler=pHandler;/施置菜单voidCSnakeView:OnContextMenu(CWnd*pWnd,CPointpoint)CMenumenu;menu.LoadMenu(IDR_MAINFRAME);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号