Windows默认的是MM_TEXT图形影射模式。当打印机与屏幕每页容纳相素数目不同时,如果在MM_TEXT模式下处理图形就会出现问题。

映射模式中又可分成以下3类:

1. MM_TEXT映射模式这种映射模式被称为"文本"映射方式,不是因为它对于文本最合适,而是轴的方向与读文本的方向一致。Windows提供了函数SetViewportOrg和SetWindowOrg用来设置视口和窗口的原点。缺省的窗口原点和视口原点均为(0,0),可以改变;缺省的窗口范围和视口范围均为(1,1),不可改变。
2. 度量映射方式MM_LOMETRIC、MM_HIMETRIC、MM_LOENGLISH、MM_HIENGLISH和MM_TWIPS将1个逻辑单位映射为固定的实际单位,其中1twip等于0.0176mm(1/1440英寸)。其他映射模式对应的物理单位参见表1。设置了映射模式以后,Windows自动设置了窗口及视口的范围,范围本身的值并不重要,但范围比是一个固定的值,对于MM_LOMETRIC,Windows计算范围比xViewExt/xWinExt=0.1mm中水平像素的点数。
3.自定义映射模式MM_ISOTROPIC和MM_ANISOTROPIC两种映射模式允许程序员设置自己的窗口和视口范围。MM_ISOTROPIC和MM_ANISOTROPIC的区别是所设置的x轴和y轴的的范围必须相同,而MM_ANISOTROPIC所设置的x轴和y轴的的范围可以不同。isotropi的意思是"在所有方向相同",anisotropic的意思正相反。自定义映射模式中窗口和视口的原点和范围都可以改变,程序员可以设置自己需要的映射模式。函数SetWindowExt和SetViewportExt用于改变窗口和视口的范围。下面的代码将1个逻辑单位映射成0.396mm(1/64英寸)。

处理图形较好的影射模式是MM_LOENGLISH。因此我们用下面这两行代码替换点刚才加入的代码:pDC->Rectangle(20,20, 220, 220);   pDC->SetMapMode(MM_LOENGLISH);  //设置影射模式    pDC->Rectangle(20, -20, 220, -220);

Windows影射模式相关推荐

  1. Windows保护模式学习笔记(十四)—— 阶段测试

    Windows保护模式学习笔记(十四)-- 阶段测试 题目一 解题步骤 题目二 解题步骤 题目一 描述:给定一个线性地址,和长度,读取内容 int ReadMemory(OUT BYTE* buffe ...

  2. Windows保护模式学习笔记(十三)—— PWTPCD

    Windows保护模式学习笔记(十三)-- PWT&PCD 要点回顾 CPU缓存 CPU缓存与TLB的区别 PWT(Page Write Through) PCD(Page Cache Dis ...

  3. Windows保护模式学习笔记(十二)—— 控制寄存器

    Windows保护模式学习笔记(十二)-- 控制寄存器 控制寄存器 Cr0寄存器 Cr2寄存器 Cr4寄存器 控制寄存器 描述: 控制寄存器有五个,分别是:Cr0 Cr1 Cr2 Cr3 Cr4 Cr ...

  4. Windows保护模式学习笔记(十)—— TLB

    Windows保护模式学习笔记(十)-- TLB 地址解析 10-10-12分页 2-9-9-12分页 TLB TLB结构 TLB种类 练习1:体验TLB的存在 第一步:运行代码 第二步:设置中断门描 ...

  5. Windows保护模式学习笔记(九)—— 2-9-9-12分页

    Windows保护模式学习笔记(九)-- 2-9-9-12分页 要点回顾 10-10-12分页 原理 环境配置 2-9-9-12分页 原理 PDPTE PDE PTE XD/NX标志位 环境配置 实验 ...

  6. Windows保护模式学习笔记(八)—— 页目录表基址/页表基址

    Windows保护模式学习笔记(八)-- 页目录表基址/页表基址 要点回顾 一.页目录表基址 实验:拆分线性地址C0300000,并查看其对应的物理页 第一步:打开一个进程,获得它的Cr3 第二步:查 ...

  7. Windows保护模式学习笔记(七)—— PDEPTE

    Windows保护模式学习笔记(七)-- PDE&PTE Cr3 PDE(页目录表项) PTE(页表项) 物理页的属性 10-10-12分页的补充 实验1:证明PTE的特征1 第一步:选择一个 ...

  8. Windows保护模式学习笔记(六)—— 10-10-12分页

    Windows保护模式学习笔记(六)-- 10-10-12分页 基本概念 4GB内存空间 有效地址-线性地址-物理地址 有效地址与线性地址 物理地址 控制寄存器:Cr3 10-10-12分页 实验:通 ...

  9. Windows保护模式学习笔记(五)—— 任务段任务门

    Windows保护模式学习笔记(五)-- 任务段&任务门 要点回顾 任务段 TSS (Task-state segment ) TR段寄存器 TR段寄存器的读写 TSS段描述符 实验:加载自定 ...

最新文章

  1. matlab scatter cdata,matlab cdatamapping
  2. ASP.NET MVC 3 Internationalization
  3. Linux中 /boot 目录介绍 【转载】
  4. 前端学习(2517):子传父
  5. BI中事实表,维度表和数据集市,数据仓库的理解
  6. 统计两个IP地址之间的IP个数
  7. 手把手教你在.NET中创建Web服务
  8. unity 2017 代码加密
  9. BGP的community属性
  10. NET常出现的三十三种代码(1)
  11. window下nodejs环境和express插件的安装
  12. ios 卡片切换效果
  13. 上班一个月,后悔当初着急入职的选择了
  14. Python颜色空间转换(sRGB,AdobeRGB,CIE XYZ,Lab,HSV互转)
  15. SOME/IP报文格式-Message ID
  16. Deepin15.3 安装firefox flash插件
  17. 好用的parallel命令
  18. html新增和删除行,html5页面结构的变化以及增加和删除标签的总结
  19. 二维码与条形码的生成和识别使用
  20. 智能合约vote部署

热门文章

  1. 使用win中excel打开linux下.csv文件乱码问题
  2. ESPIDF开发ESP32学习笔记【基本内容】
  3. python数字组合_将数字组合在一起形成多个数字的编号
  4. 堪称神器的 42 个 Chrome 插件,收藏!
  5. xp系统计算机蓝屏,xp电脑开机蓝屏代码0×0000000A怎么办
  6. 大视频,经典电影想与海外亲人共享吗?酷达为您解难题
  7. C# winform TreeView 屏蔽双击展开/折叠子节点
  8. 全志R16_SPI总线驱动的使用文档,全志R16开发资料
  9. javascript编写的网页小游戏,很给力
  10. 马云正式卸任:一文回顾马云的区块链“阳谋”