- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
visualstudio2010掃雷游戏API的实现方法
经典扫雷游戏C++API函数的实现方法扫雷对大家来说应该是非常熟悉和经典的游戏之一了,但是这样一个看似简单的小游戏是如何实现的呢?其实方法有很多种,相信我们大家都学过C++,我就先提供一种利用C++中的API函数实现扫雷的方法。代码使用说明: 游戏实现后的功能,鼠标左键单击掀开未知区域,鼠标右键单击设置标记,鼠标中间滑轮单击实现自动翻开功能。1首先打开Visual Studio 2010软件;2点击文件-新建-项目3选择Win32中的Win32项目:4确定后点击“下一步”:如下图中勾选,点击完成即可:5点击视图主菜单(View)-解决方案资源管理器:6在右侧的解决方案资源管理器中的头文件文件夹中添加下面的头文件(.h),在源文件文件夹下添加下面的源文件(.cpp文件)以下是实现的各部分代码:首先我们来写程序的入口程序WinMain函数:文档命名为WinMain.cpp#includeproc.h#includecaculate.hextern char co[xk][yk];extern char th[xk][yk];int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow){ creat(th);num(th);cover(th,co); MSG Msg ; if(!InitWindowsClass(hInstance)) return FALSE; if(!InitWindows(hInstance,nCmdShow)) return FALSE;//----------------- 消息循环 ---------------------- while( GetMessage(Msg, NULL, 0, 0)){ TranslateMessage( Msg) ; DispatchMessage( Msg) ;}return Msg.wParam;//消息循环结束即程序终止时将信息返回系统}由于Windows是基于消息的传递机制,所以接下来编写过程处理函数:命名为Proc.cpp#includeproc.h#includecaculate.hextern int record[xk][yk]={0}; //记录窗口的图形状态 0为关闭、1为开启、2为占旗extern char co[xk][yk];extern char th[xk][yk];extern int xs,ys;extern int tn;void print(char co[xk][yk],HWND hWnd,int ini_x,int ini_y,int width,int height,int cir_len);long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam) { int width=d_width,height=d_height,ini_x=d_ini_x,ini_y=d_ini_y,cir_len=8,mine_x=ys,mine_y=xs,cyc_x,cyc_y; int move_x,move_y,record_i,record_j,flag; int test_x,test_y; WORD mouse_x,mouse_y; HDC hDC; //定义指向设备的句柄 HBRUSH hBrush,hB; //定义指向画刷的句柄 HPEN hPen;//定义指向画笔的句柄 PAINTSTRUCT PtStr;//定义指向包含绘图信息的结构体变量 WORD x,y; HCURSOR hCursor; TEXTMETRIC tm; wchar_t lpsz1[]=L重新开局,lpsz2[]=L重试本局,lpsz[3],lpsz_text[]=L剩余标记数:; int i,j; //揭开时的坐标switch(iMessage) //处理消息{ case WM_MOUSEMOVE:x=LOWORD(lParam);y=HIWORD(lParam);if(x=ini_xx=ini_x+width*mine_xy=ini_yy=ini_y+height*mine_y){hCursor=LoadCursor(NULL,IDC_CROSS);SetCursor(hCursor);}/*if(x=20+2*d_ini_x+ys*d_widthx=20+2*d_ini_x+ys*d_width+70y=10y=10+height){hDC=GetDC(hWnd); SetMapMode(hDC,MM
文档评论(0)