没有合适的资源?快使用搜索试试~ 我知道了~
设备坐标(DP)、客户坐标(Client)、逻辑坐标(LP)在用法和含义上都有哪些区别呢?
5星 · 超过95%的资源 需积分: 23 8 下载量 169 浏览量
2008-12-09
17:48:27
上传
评论
收藏 32KB DOC 举报
温馨提示
试读
3页
设备坐标(DP)、客户坐标(Client)、逻辑坐标(LP)在用法和含义上都有哪些区别呢?通过本教程,你可以迅速理解坐标原理
资源推荐
资源详情
资源评论
设备坐标(DP)、客户坐标(Client)、逻辑坐标(LP)在用法和含义上都有哪些区别呢?
1.逻辑坐标
逻辑坐标是独立于设备的,它与设备点的大小无关。使用逻辑单位,是实现"所见即所
得"的基础。当程序员在调用一个画线的 GDI 函数 LineTo,画出 25.4mm(1 英寸) 长的线
时,他并不需要考虑输出的是何种设备。若设备是 VGA 显示器,Windows 自动将其转化
为 96 个像素点;若设备是一个 300dpi 的激光 打印机,Windows 自动将其转化为 300 个
像素点。
2.设备坐标
Windows 将 GDI 函数中指定的逻辑坐标映射为设备坐标,在所有的设备坐标系统中,
单位以像素点为准,水平值从左到右增大,垂直值从上到下增大。
Windows 中包括以下 3 种设备坐标,以满足各种不同需要:
(1)客户区域坐标,包括应用程序的客户区域,客户区域的左上角为(0,0)。
(2)屏幕坐标,包括整个屏幕,屏幕的左上角为(0,0)。屏幕坐标用在 WM_MOVE
消息中(对于非子窗口)以及下面的 Windows 函数中:CreateWindow 和 MoveWindow(都
对 于 非 子 窗 口 ) 、 GetMessage 、 GetCursorPos 、 GetWindowRect 、 WindowFromPoint 和
SetBrushOrg 中。用函数 ClientToScreen 和 ScreenToClient 可以将客户区域坐标转换成屏幕
区域坐标,或反之。
(3)全窗口坐标,包括一个程序的整个窗口,包括标题条、菜单、滚动条和窗口框,窗
口的左上角为(0,0)。使用 GetWindowDC 得到的窗口设备环境,可以将逻辑单位转换成
窗口坐标。
3.逻辑坐标与设备坐标的转换方式
映射方式定义了 Windows 如何将 GDI 函数中指定的逻辑坐标映射为设备坐标。要继续
讨论映射方式我们要介绍 Windows 有关映射模式的一些术语:我们将逻辑坐标所在的坐标
系称为"窗口",将设备坐标所在的坐标系称为"视口"。
"窗口"依赖于逻辑坐标,可以是像素点、毫米或程序员想要的其他尺度。
"视口"依赖于设备坐标(像素点)。通常,视口和客户区域等同。但是,如果程序员
用 GetWindowDC 或 CreateDC 获取了一个设备环境,则视口也可以指全窗口坐标或屏幕坐
标。点(0,0)是客户区域的左上角。x 的值向右增加,y 的值向上增加。
对于所有映射模式,Windows 都用下面两个公式将窗口坐标转换成视口坐标:
xViewport=(xWindow-xWinOrg)*(xViewExt/xWinExt)+xViewOrg
资源评论
- uvloss2013-06-11最近在练MFC,快被DP,LP搞疯了,文章讲解的很透彻,比较推荐~
- jshpan_swjtu2014-03-18几个容易模糊的坐标概念,讲的很透彻
- Jesus_zhaolin2012-05-23几个容易模糊的坐标概念,讲的很透彻
jianqiao2
- 粉丝: 2
- 资源: 24
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功