100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 五子棋人机交互c语言代码 Windows人机交互程序设计教学课件-第10课 五子棋程序.ppt...

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

时间:2021-12-15 08:26:05

相关推荐

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

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

展开阅读全文

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。