Windows的图形设备接口及Windows绘图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PAINTSTRUCT结构,该结构中包含了包围 无效区域的一个最小矩形的结构RECT,应 用程序可以根据这个无效矩形执行刷新操作。
Typedef struct tagPAINTSTRUCT
{
HDC hdc;
//设备环境句柄
BOOL fErase;
//一般取真值,
//表示擦除无效矩形的背景
RECT rcPaint;
– 由BeginPaint函数获取的设备环境要用 EndPaint函数释放,其形式为:
void EndPaint(HWND hwnd, PAINTSTRUCT &ps);
图形设备接口
-获取设备环境
• 调用GetDC函数
– 如果绘图工作并非由WM_PAINT消息驱动,则 调用GetDC函数获取设备环境。其形式为: hdc=GetDC(hwnd);
-图形刷新
• 刷新方法
– 常用的Windows应用程序刷新窗口的方法 • 保存副本。 刷新时将副本拷贝到相应的窗口中 • 记录事件。 刷新时重新执行这个曾经发生的事件 • 重新绘制。 将图形绘制处理程序放在消息WM_PAINT 响应模块中,刷新时重绘图形
图形设备接口
-获取设备环境
• 获取设备环境是应用程序输出图形的先决 条件,常用的两种方法: – 调用函数BeginPaint – 调用函数GetDC
– Windows系统通常通过发送WM_PAINT消息 将刷新请求传送给应用程序。
图形设备接口
-图形刷新
• 对刷新请求的响应
– 当用户区的内容需要刷新时,系统向应用程 序消息队列发送WM_PAINT消息,系统在 应用程序的消息队列中加入该消息,以通知 窗口函数执行刷新处理。
– Windows系统对刷新请求的响应分为三种情 况。
图形设备接口
-图形刷新
• 图形刷新是绘图过程中必须考虑的重要 问题。包括以下步骤:
– 刷新请求 – 对刷新请求的响应 – 刷新方法
图形设备接口
-图形刷新
• 刷新请求
– 其目的是为了解决在多窗口操作时,被覆盖 的图形或窗口,在遮挡窗口消失后,图形和 窗口的恢复问题。
– Windows系统并不总是记录窗口中需保存的 内容。应用程序必须及时处理刷新请求和刷 新图形的功能。
– 由GetDC函数获取的设备环境必须用ReleaseDC 函数释放。其形式为: void ReleaseDC(HWND hwnd);
图形设备接口
-获取设备环境
项目 函数 使用环境
操作区域 释放设备环 境所用函数
BeginPaint 与 GetDC 的区别
BeginPaint 函数
GetDc 函数
图形设备接口
-图形设备接口的一些基本概念
• 设备描述表(Device Context)是一个用 来确定任何设备的GDI输出的位置和形象 的属性的集合。
• 应用程序并不能直接读取设备描述表, 而是使用设备描述表的句柄来间接地存 取设备描述表及其属性。
• 当程序为设备描述表要求一个句柄时, 就将创建一个设备描述表。包含其属性 和默认值。
只用于图形刷新时获 取设备环境
使用较为广泛
使用 BeginPaint 函数 使用 GetDC 函数获 获取设备环境后,操作 取设备环境后,操作
区域为无效区域
区域为整个用户区
由 EndPaint 函数释放
由 ReleaseDC 函数释 放
图形设备接口 -映像模式
• 映像模式定义了将逻辑单位转化为设备 的度量单位以及设备的x方向和y方向, 程序员可在一个统一的逻辑坐标系中操 作而不必考虑输出设备的坐标系情况。
MM_ISOTROPIC
MMห้องสมุดไป่ตู้LOENGLISH MM_LOMETRIC MM_TEXT MM_TWIPS
系 0将 .0统0一1确英个按坐定逻 寸照标辑单窗比位口例映和进射为视行口映OY的 射p上ti,o坐naX标l 右系设定
• 窗口: 对应逻辑坐标系上程序员设定的区域
• 视口: 对应实际输出设备上程序员设定的区域
图形设备接口 -映像模式
屏幕坐标系统
设备坐标系统 坐 标 系 统
逻辑坐标系统
窗口坐标系统 用户区坐标系统
图形设备接口 -映像模式
Windows中的映像模式
映像模式 MM_ANISOTROPIC MM_HIENGLISH MM_HIMETRIC
窗口移动后的刷新




新 请
被覆盖区域的刷新




用户区移动或显示 用户窗口大小改变 程序通过滚动条滚动窗口
窗口被另一个窗口覆盖的 恢复如下拉式菜单关闭、 Windows清除对话框等
对象穿越后的系刷统新 自动完光图标标成穿拖过过用用户户区区
图形设备接口
-图形刷新
• 对刷新请求的响应
– 窗口被另一个窗口覆盖的区域称为无效区域。 – Windows系统为每个窗口建立了一个
一、概述
• Windows图形设备接口(GDI,Graphics Device Interface)是为与设备无关的图 形设计的。
• 所谓设备的无关性,就是操作系统屏蔽 了硬件设备的差异,因而设备无关性能 使用户编程时无需考虑特殊的硬件设置。
二、相关内容
• 图形设备接口 • 绘图工具和颜色的设置与应用 • 常用绘图函数 • 应用实例
图形设备接口
-获取设备环境
• 调用函数BeginPaint
– 应用程序响应WM_PAINT消息进行图形刷新 时,主要通过调用BeginPaint函数获取设备环 境,其形式为:
hdc=BeginPaint(hwnd,&ps); //ps为PAINTSTRUCT类型结构, //定义方式为:PAINTSTRUCT ps;
图形设备接口
• 图形设备接口(GDI)负责系统与用户或 绘图程序之间的信息交换,并控制在输出 设备上显示图形或文字,是Windows系统 的重要组成部分。
• 开发人员只要建立与输出设备的关联,让 系统加载相应的设备驱动程序即可。
图形设备接口
• 图形设备接口的一些基本概念 • 图形刷新 • 获取设备环境 • 映像模式
//无效矩形标识
BOOL fRestore; //系统保留
BOOL fIncUpdate; //系统保留
BYTE rgbReserved[16];//系统保留
}PAINTSTRUCT;
rcPaint为标准的RECT数据结构, 其作用是标识无效矩形,它包含了 无效矩形的左上角和右下角的坐标
图形设备接口
相关文档
最新文档