




免费预览已结束,剩余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年人工智能算法在审计中的应用与挑战分析
- 什么是公路施工方案编制
- 2025年光伏产业上游原材料市场供需与价格分析报告
- 中国文化宣传活动方案策划
- 第六单元第3课《阳光的妙用》教学设计-六年级下册综合实践活动广州版
- 城市别墅的基础施工方案
- 第6课“声”临其境教学设计初中信息技术南方版2024七年级下册第2册-南方版2024
- 2025-2030年新能源汽车电池回收区域布局与产业集聚研究报告
- 新能源产业碳排放权交易市场政策研究报告
- 健康体检课件下载
- 2024年黑龙江省《宪法知识竞赛必刷100题》考试题库【研优卷】
- 低代码行业应用案例分析-深度研究
- 外研版(三起)五年级上册英语期末完形填空专题训练
- 广东省惠州市联考2024-2025学年上学期12月教学质量阶段性诊断八年级数学试卷(无答案)
- 足下垂康复治疗
- GB/T 15822.3-2024无损检测磁粉检测第3部分:设备
- 工程结算协议书
- 2024-2030年中国痘痘贴行业营销动态及消费需求预测研究报告
- (高清版)AQ 1075-2009 煤矿低浓度瓦斯往复式内燃机驱动的交流发电机组通 用技术条件
- 中国食物成分表2018年(标准版)第6版
评论
0/150
提交评论