五子棋人机交互c语言代码,Windows人机交互程序设计教学课件-第10课 五子棋程序.ppt…

www.themegallery.com,Company Logo,北方软件学院 North Software Institute,Windows人机交互程序设计,第10课 五子棋程序,www.themegallery.com,Company Logo,本节课主要内容,知识回顾 五子棋程序设计 文本输出函数 字体,www.themegallery.com,Company Logo,知识回顾,问题1:文本输出的函数是题2:创建字体的函数是题3:SelectObject函数的作用是题4:字体的作用是ww.themegallery.com,Company Logo,*绘制文字的API函数1,BOOL TextOut(HDC hdc,int x,int y,LPSTR pszText,int nSize); 功能:在窗口的指定的位置显示文字内容。 返回值:如果函数执行成功返回TRUE,如果函数执行失败返回FALSE.,www.themegallery.com,Company Logo,*参数内容,HDC hdc 设备环境句柄 int x 文本的输出的起始位置x坐标 int y 文本输出的起始位置y坐标 LPSTR pszText 要输出的文本内容0 int nSize 输出内容的尺寸,www.themegallery.com,Company Logo,举例,TextOut(hdc,0,10,”Hello Word”,strlen(“Hello Word”));,www.themegallery.com,Company Logo,*绘制文字的API函数2,int DrawText(HDC hDC , LPCTSTR lpString , int nCount , LPRECT lpRect ,UINT uFormat) 功能:在一个指定的矩形框内绘画文本 返回值:如果函数执行失败返回0,如果函数执行成功返回绘制文本的高度。,www.themegallery.com,Company Logo,*参数内容,HDC hdc 存放设备环境句柄。 LPCTSTR lpString , int nCount 存放要显示的文本的缓冲区和缓冲区尺寸。 LPRECT lpRect 存放文本显示的矩形区域。 UINT uFormat 文本显示格式说明,例如:DT_LEFT 文本靠左显示,www.themegallery.com,Company Logo,UINT uFormat 常用值,DT_BOTTOM //靠低显示 DT_CENTER // 居中显示 DT_LEFT //靠左显示 DT_RIGHT //靠右显示 DT_SINGLELINE //单行显示 DT_TOP //靠上完成 DT_VCENTER //垂直方向居中 DT_WORDBREAK //自动换行,www.themegallery.com,Company Logo,*如何创建字体,HFONT CreateFont(……); HFONT CreateFontIndirect(CONST LOGFONT *lplf ); 功能:创建字体 返回值:字体句柄,如果创建失败返回NULL;,www.themegallery.com,Company Logo,typedef struct tagLOGFONT { LONG lfHeight; LONG lfWidth; LONG lfEscapement; LONG lfOrientation; LONG lfWeight; BYTE lfItalic; BYTE lfUnderline; BYTE lfStrikeOut; BYTE lfCharSet; BYTE lfOutPrecision; BYTE lfClipPrecision; BYTE lfQuality; BYTE lfPitchAndFamily; CHAR lfFaceName[LF_FACESIZE]; } LOGFONT;,www.themegallery.com,Company Logo,LOGFONT LogFont; HFONT hFont, hOldFont; … … hFont = CreateFontIndirect(,www.themegallery.com,Company Logo,上机课,实验(1) 实现MessageBox输出的计算器; 实验(2) a. 创建窗口 b. 窗口在屏幕上的左上角(10,10)处出现,大小为(200,300); c. 窗口名称为“hello Word”;,www.themegallery.com,Company Logo,五子棋,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,www.themegallery.com,Company Logo,分析,设计该程序需要解决哪些问题)应该具备哪些功能)人机交互动作有哪些)棋盘如何画色如何实现哪些函数)棋子如何画哪些函数)需要什么样的数据结构)程序算法和流程如何实现ww.themegallery.com,Company Logo,五子棋——棋子位置,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,www.themegallery.com,Company Logo,程序流程——1 程序总流程,绘制棋盘,截获 鼠标消息,,绘制棋子,,,,www.themegallery.com,Company Logo,程序流程——2 下棋子的流程,鼠标点击,判断点击位置是否 在棋子位置上,绘画棋子,判断当前是黑棋 还是白棋下,,,,www.themegallery.com,Company Logo,数据结构设计,Struct Qizi{ int left; int Right; int Top; int Bottom; bool bIsShow; int bIsBlack; } aQi[100];,www.themegallery.com,Company Logo,程序流程**,开始,Windows入口 函数,消息循环 结束束,,,,WM_LBUTTONDOWN,,输入界面,控件响应,注册窗口类,创建窗口,,,是,否,窗口过程处理函数,,,…,WM_PAINT,WM_PAINT,,,绘制棋盘,绘制棋子,,message== WM_PAINT,message== WM_LBUTTONDOWN,修改棋子状态,窗口刷新,,,Break;,,,,,WndProc开始,,否,是,,是,DefWindowProc,,否,,WndProc结束,,,,www.themegallery.com,Company Logo,需要哪些函数)初始化坐标操作 2)判断当前点击位置是否在棋子位置上 3)绘制棋子函数 4)绘制棋盘函数,www.themegallery.com,Company Logo,函数接口设计,void InitQizi(int xStart,int yStart,int nRow,int nCol) void DrawQipan(HDC hdc,int xStart,int yStart,int row,int col) void DrawQizi(HDC hdc),

展开阅读全文

文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树首页概览114611 人正在系统学习中 相关资源:SRTApp:学生投票追踪器-其它代码类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月19日
下一篇 2021年4月19日

相关推荐