- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程设计目的 功能描述 (4)处理对话框的WM_SIZE消息,在对话框大小改变时,调整子窗口的大小和位置。 (5)处理对话框的WM_GETMINMAXINFO消息,限制对话框的最小窗口大小。 void CClientFiveChessDlg::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) { lpMMI-ptMinTrackSize.x = 800; //限制窗口最小宽度 lpMMI-ptMinTrackSize.y = 500; //限制窗口最小高度 CDialog::OnGetMinMaxInfo(lpMMI); } 在客户端的主窗口中包含有游戏控制窗口、棋盘窗口和对方信息窗口,这3个窗口的设计过程与服务器端对应的窗口设计过程是完全相同的,因此就不再单独介绍了。其设计过程请参考9.5节棋盘窗口设计、9.6节游戏控制窗口设计和9.7节对方信息窗口设计。 9.5 调试运行 客户服务器程序在调试时,由于要在两个进程间传递信息,因此调试难度远远大于单个程序,调试这种程序时,可以同时打开两个Visual C++窗口,分别运行服务器端和客户端。,但是同时在两个Visual C++窗口中设置断点,有时又会顾此失彼。一般来说,如果我们只考虑程序的通信部分的功能,服务器端要比客户端复杂一些。因此,可以设计一个简单的提供数据的客户端,先忽略客户端的非通信部分功能,而集中完成它的通信部分功能,将它设计好,用它来为服务器提供数据。这样就可以只在服务器中设置断点,与调试单个程序就没有什么区别了。 调试运行 9.6 课程设计总结 本章主要使用了套接字技术,GDI技术,通过本意网络五子棋程序的开发,我们可以进一步加深对这两种技术的理解。上一章的工资管理系统,主要使用了数据库技术。可以说,数据库技术广范使用在各类软件中,网络通信则是当前计算机应用的热点领域。通过这两个系统的开发,可以使我们掌握基本软件的开发方法。更实用复杂的系统开发,要我们在应用中逐步积累经验。 课程设计总结 棋盘窗口是整个网络五子棋模块的核心,在棋盘窗口中实现的主要功能包括接受客户端连接、接收客户端发送的数据、绘制棋盘、绘制棋盘表格、绘制棋子、赢棋判断、网络状态测试,开始游戏、游戏回放等。棋盘窗口效果如图10-4所示。 9.4.4 棋盘窗口设计 图10-4 棋盘窗口 1 界面设计 棋盘窗口界面布局如下: (1)创建一个对话框类,类名为“CChessBorad”。 (2)设置对话框属性,如表10-1所示。 表10-1 棋盘窗口属性设置 CChessBorad:m_ChessBoard Style:Child Border:None Title bar:FALSE IDD_CHESSBORAD_DIALOG 关联变量 控件属性 控件ID 关键代码 (1)实现动态调整棋盘大小 在设计网络五子棋时,为了突出游戏的特点,允许用户在游戏进行的过程中调整窗口的大小。 实现该功能的难点在于窗口调整大小后,棋盘的大小需要调整,棋盘表格的大小需要调整,棋盘中当前棋子的位置需要调整。这里采用的方式是记录水平方向和垂直方向的缩放比例。当首次显示对话框时,认为水平方向和垂直方向的缩放比例为1,并且记录棋盘的宽度和高度,作为棋盘的原始宽度和高度。当调整对话框时,设置棋盘新的宽度和高度,并且将其与原始棋盘的宽度和高度进行除法运算,记录水平方向和垂直方向的缩放比例。在绘制棋盘表格、棋子位置时都依据缩放比例进行绘制。 以绘制棋盘的表格为例,在对话框初始时需要确定表格相对棋盘的坐标,以及表格中每个单元格的宽度和高度。以本模块为例,首次绘制表格时,起点坐标分别为50和50,单元格的宽度和高度均为50。 m_nOrginX = m_nOrginY = 50; //表格起点坐标 m_nCellHeight = m_nCellWidth = 50; //单元格高度和宽度 当绘制表格时会根据当前水平方向和垂直方向的缩放比例计算此刻表格的起点坐标、单元格的高度和宽度,这样就可以正确的绘制表格了。 void CChessBorad::DrawChessboard() { CDC* pDC = GetDC(); //获取窗口设备上下文 CPen pen(PS_SOLID,1,RGB(0,0,0)); //定义黑色的画笔 pDC-SelectObject(pen); //选中画笔 int nOriginX = m_nOrginX*m_fRateX; //计算表格的起点坐标 int nOriginY = m_nOrginY*m_fRateY; int nCel
您可能关注的文档
- Visual C#程序设计应用教程 教学课件 作者 郭力子 1第9章Web应用程序设计基础.ppt
- Visual C#程序设计应用教程 教学课件 作者 郭力子 第1章C#与VisualStudio2005.ppt
- Visual C#程序设计应用教程 教学课件 作者 郭力子 第2章变量与表达式.ppt
- Visual C#程序设计应用教程 教学课件 作者 郭力子 第4章数组、集合与字符串.ppt
- Visual C#程序设计应用教程 教学课件 作者 郭力子 第5章面向对象编程基础.ppt
- Visual C#程序设计应用教程 教学课件 作者 郭力子 第7章数据库访问.ppt
- Visual C#程序设计应用教程 教学课件 作者 郭力子 第9章Web应用程序设计基础.ppt
- Visual C_.NET案例教程 教学课件 作者 翁健红 1 6 第1章.ppt
- Visual C_.NET案例教程 教学课件 作者 翁健红 1 6 第2章.ppt
- Visual C_.NET案例教程 教学课件 作者 翁健红 1 6 第3章.ppt
- Visual Forpro数据库设计与应用 教学课件 作者 安晓飞 10VFP第1讲.ppt
- Visual Forpro数据库设计与应用 教学课件 作者 安晓飞 10VFP第2讲.ppt
- Visual Forpro数据库设计与应用 教学课件 作者 安晓飞 10VFP第3讲.ppt
- Visual Forpro数据库设计与应用 教学课件 作者 安晓飞 10VFP第4讲.ppt
- Visual Forpro数据库设计与应用 教学课件 作者 安晓飞 10VFP第5讲.ppt
- Visual Forpro数据库设计与应用 教学课件 作者 安晓飞 10VFP第6讲.ppt
- Visual Forpro数据库设计与应用 教学课件 作者 安晓飞 10VFP第7讲.ppt
- Visual Forpro数据库设计与应用 教学课件 作者 安晓飞 10VFP第8讲.ppt
- Visual Forpro数据库设计与应用 教学课件 作者 安晓飞 10VFP第9讲.ppt
- Visual Forpro数据库设计与应用 教学课件 作者 安晓飞 10VFP第10讲.ppt
文档评论(0)