- 1
- 0
- 约2.5千字
- 约 42页
- 2018-04-16 发布于河南
- 举报
[WCE]第11课-上机实验下
第11课-上机实验下 北方软件学院 李星华 North Software Institute 大纲 知识回顾 窗口绘制 窗口绘制实例 棋子绘制分析 知识回顾 实验题目-棋盘绘制 五子棋程序 五子棋:要求 1)要绘出10*10的棋盘; 2)棋盘颜色为自定义; 3)棋盘线条要明显; 4)可以黑白棋子交互下。 说明: 编写代码时注意代码规范,同时将功能划分成函数,如下所示: DrawQiPan(HDC hdc); // 绘制棋盘函数 DrawQiZi(HDC hdc); // 绘制棋子函数 分析 设计该程序需要解决哪些问题? 1)应该具备哪些功能? 2)人机交互动作有哪些? 3)棋盘如何画?背景色如何实现?需要哪些函数? 4)棋子如何画?需要哪些函数? 5)需要什么样的数据结构? 6)程序算法和流程如何实现? 窗口绘制实例 棋盘绘制-创建工程 棋盘绘制-创建工程 棋盘绘制-创建工程 棋盘绘制-创建工程 棋盘绘制-创建工程 棋盘绘制-创建工程 到此为止,项目创建完毕。 绘制棋盘-说明 说明: 我们所绘制代码要写在WM_PAINT消息的BeginPaint与EndPaint之间,如下图所示: 为了让我们的程序结构化更清晰,我们定义绘制棋盘函数,其在BeginPaint与EndPaint之间调用此函数,接下来让我们开始吧!!! 1、声明绘制棋盘函数 2、绘制棋盘函数简单实现 3、WM_PAINT消息中调用 4、棋盘的绘制 由于绘制棋盘的函数已经定义,并且在WM_PAINT消息中调用,所以其它地方我们可以不用关注,只关心DrawQiPan的实现即可。 在绘制棋盘之前,要想好绘制棋盘的步骤: 1、动态获得窗口大小,根据大小绘制棋盘大小; 2、绘制外边框,为了好看; 3、绘制背景色; 4、循环绘制直线与竖线。 4、棋盘的绘制-编写代码之前,写明思路 4.1 动态获得窗口大小 4.2 绘制棋盘外框 4.2 绘制棋盘外框 4.3 绘制背景 4.3 绘制背景 4.3 绘制横向线 4.4 绘制纵向线 棋盘绘制结果 棋子绘制分析 五子棋—棋子位置 1、定义绘制棋子相关函数 2、初始化棋子记录信息 3、调用棋子记录初始化 4、绘制棋子函数 5、存储棋子位置 6、左键按下时记录棋子 棋子绘制-需要定义的函数及变量 // 绘制棋盘 void DrawQiPan(HWND hWnd, HDC hdc); // 绘制棋子 void DrawQiZi(HDC hdc); // 清空二维棋子记录信息 void CleanChess(); // 记录棋子位置 void SavePostion(int nX, int nY); // 用于记录当前位置的棋子颜色 int g_nSaveChess[10][10]; int g_nGrad = 0; bool g_bColor = 0; 清空棋子记录信息 // 清空棋子记录信息 CleanChess(); 此方法可以加在WinMain函数最上面。 鼠标左键按下时响应的函数 case WM_LBUTTONDOWN: { int nX = LOWORD(lParam); int nY = HIWORD(lParam); SavePostion(nX, nY); RECT rtWin; GetClientRect(hWnd, rtWin); InvalidateRect(hWnd, rtWin, TRUE); } break; 绘制棋盘函数 //----------------------------------------------------------------------------- // 绘制棋盘函数 // // IN : hWnd 要绘制图形的窗口句柄 // hdc 绘制的设备环境句柄 // OUT : NULL // RETURN : void // AUTHOR : 2010-10-11 21:07 Create by lixinghua for functions. // NOTE : hWnd 的用处在于动态获得窗口大小。 // 本方法在WM_PAINT消息中调用。 //----------------------------------------------------------------------------- // void DrawQiPan(HWND hWnd, HDC hdc) { } 初始化棋子信息 //----------------------------------------------------------------------------- // 初始化棋子记录信息 // // IN : NULL // OU
您可能关注的文档
最近下载
- 《新编应用文写作(第2版)》全套教学课件.pptx
- 美的热水器F80- A20GA2(H)专项试验报告.pdf VIP
- 湖南省长沙市雅礼中学2024-2025学年高二上学期期末考试数学试题(含答案).docx VIP
- 2025年最新修订中华人民共和国监察法实施条例学习解读专题宣讲PPT课件.pptx VIP
- 量子纠缠光源性能表征和测试方法-15页.pdf VIP
- 场厂内机动车辆考试试题.docx VIP
- 水库坝线选择、正常蓄水位、施工总布置编制规定.pdf VIP
- 中学校长述职报告【7篇】.docx VIP
- .直线式包裹分拣机输送分拣装置设计.doc VIP
- 2025年春新人教版七年级下册历史全册课件.ppt
原创力文档

文档评论(0)