- 1
- 0
- 约9.21千字
- 约 22页
- 2016-08-21 发布于重庆
- 举报
第4章Windows的图形设备接口及
第3章 Windows的图形设备接口及Windows绘图 主要内容 图形设备接口 绘图工具与颜色 常用绘图函数 习题: 4-6,4-8 4.1 图形设备接口 图形设备接口(GDI,Grophlcs Devlce Interface) 负责加载相应的设备驱动程序,控制在输出设备上显示图形、文字,提供与设备无关的绘图工具。 4.1.1 图形处理的基本概念 用户(客户)区 除了窗口边框之外的中间空白区。 设备环境 (Device Context(Dc)或设备上下文、设备描述符表) 相当于画布,把应用程序与设备驱动相联的一种数据结构,每个设备必须配备一个设备环境。 Dc定义了图形对象及其属性的结构(表4-l、表4-2)。 图形对象及其属性:图形模式及其输出,设备输出区域、画笔、画刷、选择的字体和颜色、目标映射方式等。 创建设备环境 应用程序不能直接存取设备环境,只能使用设备环境句柄标识设备,间接存取设备环境及其属性。 释放设备环境 应用程序访问结束时,要释放设备环境句柄(资源)。 4.1.2 图形刷新 绘图变化显示需要图形刷新,如用户区绘制了一个椭圆,并在其上显示一个颜色列表框,列表框覆盖了椭圆的一部分,当用户关闭列表框后,要用图形刷新恢复椭圆被覆盖部分的颜色和形状。 刷新过程:包括刷新请求、系统对刷新的响应以及刷新方法。 刷新请求 当用户区的内容需要刷新时,系统在应用程序的消息队列中加入WM_PAINT消息,通知窗口函数执行刷新处理。 系统对刷新响应的条件 窗口移动后(如下),系统向应用程序发送WM_PAINT消息: 用户区移动或显示。 用户窗口大小改变。 通过滚动条滚动窗口。 窗口第一次显示 在执行ShowWindow函数后,调用函数UpdateWindow更新绘制客户区,发出WM_PAINT消息,实现重画客户的内容。 被覆盖区域的刷新 当下例事件发生时,Windows系统将恢复保存的被覆盖区域: 下拉式菜单关闭。 清除对话框或消息框等对象。 被另一个窗口覆盖的区域(称为无效区域),无效区域的产生可导致系统向应用程序发送一条消息。 系统为每个窗口建立了一个PAINTSTRUCT结构,该结构变量将记录一个最小矩形(无效区域)的结构RECT,应用程序是无效矩形执行刷新操作。 对象穿越后的刷新 光标穿过用户区。 图标拖过用户区。 对象穿越后,Windows自动完成刷新,应用程序不考虑。 刷新的常用方法 对于简单图形,采用重新绘制图形方法执行刷新。 在应用程序中,将图形绘制处理程序放在消息WM_PAINT响应模块中,一旦程序接收到刷新请求即可重绘图形。 记录曾发生的事件,在需要刷新时重新调用窗口执行这个事件。 位图等复杂图形刷新,是在内存中保持一个显示输出的副本,当需要重绘窗口时,将副本复制到相应的窗口中。 4.1.3 获取设备环境句柄 输出图形必须先获取设备环境句柄(3种方法) 1.调用BeginPaint函数获得设备环境句柄 如:hdc=BeginPaint(hwnd,&ps); 其中:hwnd---访问设备环境的应用程序窗口句柄; &ps----指向变量ps的指针。 ps是结构类型PAINTSTRUCT的变量,定义方式为: PAINTSTRUCT ps 结构类型PAINTSTRUCT Windows系统提供的标识无效区域的结构,在WINDOW.H中定义: typedef struct tagPAINTSTRUCT { HDC hdc; // 设备环境句柄 BOOL fErase ; // 确定背景是否被重新绘制,一般取真值,表示擦除无效矩形的背景 RECT rcPaint;//无效区域(标识重绘的区) BOOL fRestore; //保留字段 BOOL fIncUpdate; //保留字段 BYTE rgbReserved[16];//保留字段 }PAINTSTRUCT; 系统调用BeginPaint 时,填写ps结构以标识需要刷新的无效区,为实现重绘提供记录。 rcPaint为RECT数据结构的变量,标识无效矩形。RECT结构定义: typedef struct tagRECT { LONG left; //矩形框左上角x坐标 LONG top; //矩形框左
您可能关注的文档
最近下载
- MySQL数据库项目化教程课件 3.项目一-任务3-表的操作与管理.pptx VIP
- 22G101图集常用点解读课件.pptx VIP
- MySQL数据库项目化教程课件 6.项目二-任务3-多表查询.pptx VIP
- 老年肺炎临床诊断与治疗专家共识2025解读.pptx
- 康复医学考试题及答案.doc VIP
- 进阶练03 被动语态(模拟好题100道)(解析版).docx VIP
- MySQL数据库原理与应用项目化教程课件-数据库的创建与管理.pptx VIP
- JCT 60018-2023 现浇混凝土养护技术规范.pdf VIP
- 破界与跃迁:AIGC技术浪潮下体育媒体人才培养的创新路径.pdf VIP
- MySQL数据库项目化教程课件 5.项目二-任务2-单表查询.pptx VIP
原创力文档

文档评论(0)