




免费预览已结束,剩余34页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北方软件学院 north software institute,windows人机交互程序设计,第8课 绘图工具,本节课主要内容,知识回顾 绘图工具 画笔 画刷,windows绘图知识,图像是如何显示在屏幕上的?,图像是如何显示在屏幕上的?,图像是由点组成的 windows 图像是成千上万的点像素组成。,色彩是怎么构成*,三色素构成彩色 红、绿、蓝,一个像素点,程序控制显示的原理*,应用程序,操作系统,显示器驱动程序,打印机驱动程序,设备环境句柄*,hdc 设备环境句柄 hdc 是数据类型 hdc 代表了程序当前显示设备 hdc的用途:在程序中代表显示设备 在绘图时,必须要指定一个设备环境(dc),用来将某个窗口或设备与设备环境类的句柄指针关联起来,所有的绘图操作都与该句柄有关。 hdc的获得 beginpaint endpaint,beginpaint,hdc beginpaint( hwnd hwnd, lppaintstruct lppaint); 功能: 返回hwnd窗口客户区的hdc句柄,在程序中的位置,绘图消息,wm_paint 所有的绘图操作都在该消息下产生 窗口刷新的时候产生该消息 如:窗口尺寸发生变化、窗口被其他窗口覆盖 函数: invalidaterect 执行的时候产生该消息 使用例子: invalidaterect(hwnd,null,true);,画 线,*画线函数,bool movetoex( hdc hdc, int x, /起始xpos int y, /起始ypos lppoint lppoint /光标的旧位置 ); 功能:确定直线的起始坐标,*画线函数,bool lineto( hdc hdc, int nxend, int nyend); 功能:确定直线的结束坐标,并画线 例:画一条直线 movetoex(hdc,200,300,null); lineto(hdc,200,600);,常用画图工具,画 笔,如何绘画彩色的线条? 如何绘制粗一些的线条? 如何绘制点划线? 需要使用工具画笔,画笔创建函数*,hpen createpen( int fnpenstyle, int nwidth, colorref crcolor) 功能:创建一个画笔对象 返回值:返回一个画笔句柄。,参 数 含 义*,fnpenstyle:画笔的风格,取值为: ps_sold,ps_dash,ps_dot,ps_dashdot等。 nwidth : 画笔的粗细 crcolor : 画笔的颜色,如何使用画笔?*,思考:我们在绘画的时候如何使用笔? windows编程中是通过函数selectobject来选择画笔。 hgdiobj selectobject( hdc hdc, hgdiobj hgdiobj);,选择函数说明*,hgdiobj selectobject( hdc hdc, hgdiobj hgdiobj); 功能:选择绘图对象的函数 参数:hgdiobj :存放要选入的绘图对象句柄。包括,hpen,hbrush,hbitmap,hfont等等 返回值:返回未选择前,系统当前正在使用的图形对象句柄。,*绘画函数代码片断,hpen hpen= createpen( ps_sold,3,rgb(255,0,0); hpen holdpen = (hpen) selectobject(hdc,hpen); movetoex(hdc,0,100,null); lineto(hdc,500,100); selectobject(hdc,holdpen); deleteobject(hpen);,*矩形绘制,bool rectangle( hdc hdc, int nleftrect, int ntoprect, int nrightrect, int nbottomrect);,*绘制椭圆,bool ellipse( hdc hdc, int nleftrect, int ntoprect, int nrightrect, int nbottomrect);,如何给一个图形上色? *用画刷,*画刷创建函数,hbrush createsolidbrush( colorref crcolor); 功能:创建一个指定颜色的画刷句柄,*应用举例,hbrush hbrush = createsolidbrush(rgb(255,0,255); hbrush holdbrush = (hbrush)selectobject(hdc,hbrush); rectangle(hdc,50,50,400,400); selectobject(hdc,holdbrush); deleteobject(hbrush);,课后作业,绘图试验: 要求:编写程序实现25*25的五子棋棋盘;,文本显示,*绘制文字的api函数1,bool textout(hdc hdc,int x,int y,lpstr psztext,int nsize); 功能:在窗口的指定的位置显示文字内容。 返回值:如果函数执行成功返回true,如果函数执行失败返回false.,*参数内容,hdc hdc 设备环境句柄 int x 文本的输出的起始位置x坐标 int y 文本输出的起始位置y坐标 lpstr psztext 要输出的文本内容0 int nsize 输出内容的尺寸,举例,textout(hdc,0,10,”hello word”,strlen(“hello word”);,*绘制文字的api函数2,int drawtext(hdc hdc , lpctstr lpstring , int ncount , lprect lprect ,uint uformat) 功能:在一个指定的矩形框内绘画文本 返回值:如果函数执行失败返回0,如果函数执行成功返回绘制文本的高度。,*参数内容,hdc hdc 存放设备环境句柄。 lpctstr lpstring , int ncount 存放要显示的文本的缓冲区和缓冲区尺寸。 lprect lprect 存放文本显示的矩形区域。 uint uformat 文本显示格式说明,例如:dt_left 文本靠左显示,uint uformat 常用值,dt_bottom /靠低显示 dt_center / 居中显示 dt_left /靠左显示 dt_right /靠右显示 dt_singleline /单行显示 dt_top /靠上完成 dt_vcenter /垂直方向居中 dt_wordbreak /自动换行,*如何让文本显示颜色,colorref settextcolor( hdc hdc, colorref crcolor); 功能:设别文本
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 砌筑工理论考试题及答案
- 2025年物业管理合同纠纷调解协议(GF-97-1010)
- 2025年广西壮族自治区中央遴选笔试真题(B卷)试题及参考答案
- 2025年广西三支一扶考试笔试试题(含答案)
- 销售合同标准化审核清单
- 文学招聘考试题库及答案
- 农村土地互换与资源整合合同书
- 化工实验室考试题及答案
- 矿企招聘考试内容及答案
- 无锡一中高考试卷及答案
- 保安三级安全考试题库及答案解析
- 电信国庆活动方案
- 市场仿真花施工方案
- 2025年入团知识考试题库(含答案)
- 职业培训项目实施方案
- 蔬菜抗营养成分流失工艺考核试卷及答案
- 破产重整程序中金融债权人保护问题研究
- 柴油发电机施工安装技术方案详述
- 民警培训安全驾驶简报课件
- 十年(2016-2025)高考生物真题分类汇编(全国通.用)专题10 基因的自由组合定律(解析版)
- 2025年大数据应用工程师认证考试预测题详解与实战指南手册
评论
0/150
提交评论