[WCE]第11课-上机实验下.pptVIP

  • 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

文档评论(0)

1亿VIP精品文档

相关文档