TextOut(hdc,100,100,TEXT(“Love China”),10)

这句GDI函数的作用是在坐标点(100,100)的位置输出一个“Love China”字符串:

GDI函数作为硬件设备(显示器,打印机)的接口封装中间层,其传入的参数坐标值(100,100)要在设备上哪个位置显示,是通过GDI映射方式定义的!也就是说:

(100,100) ----------------通过方式A映射之后,可以变成----------------》(1,1)

(100,100) ----------------通过方式B映射之后,可以变成----------------》(10,1)

(100,100) ----------------通过方式C映射之后,可以变成----------------》(1,3)

(100,100) ----------------通过方式C映射之后,可以变成----------------》(5,1)

左边这一列的坐标(100,100)就是一个逻辑坐标(所有GDI函数都是)

右边这一列的坐标(1,1)就是一个设备坐标

所谓映射,就是将一个值通过一个数学公式变成另外一个值

以下是WINDOWS定义的各种映射模式

“在默认情况下,WINDOWS的坐标原点在(0,0)点,但是可以通过调用SetWindowOrgEx来改变逻辑坐标点的原点,通过SetViewportOrgEx来改变设备坐标的原点;如果传入的参数有负号,还能够改变对应轴的正方向;X轴的正方向指向屏幕的右侧,不同的映射模式Y轴正方向不一样”

MM_TEXT                      一个逻辑单位映射成一个像素      Y:指向屏幕下侧

MM_LOMETRIC             一个逻辑单位映射成0.1mm        Y:(以下都指向上侧)

MM_HIMETRIC              一个逻辑单位映射成0.01mm

MM_LOENGHLISH         一个逻辑单位映射成0.01英寸

MM_HIENGLISH            一个逻辑单位映射成0.001英寸

MM_TWIPS                   一个逻辑单位映射成1/1440英寸

MM_ISOTROPIC             一个逻辑单位映射成自定义的设备单位

MM_ANISOTROPIC        一个逻辑单位映射成自定义的设备单位

“黑色背景的映射方式能改变逻辑坐标(也叫窗口)或者设备坐标(也叫视口)的范围

不同之处:

MM_ISOTROPIC在设置范围时WINDOWS将自动调整使得,逻辑坐标的X与设备坐标的X之比=逻辑坐标的Y与设备坐标的Y之比

MM_ANISOTROPIC 不会调整”

要在距离窗口左边距100像素,上边距100像素的位置写出一个I love you, China可以使用如下提供的各种

Setmapmode(dc,MM_TEXT);
SetViewportorgEx(dc,100,100,nil);
逻辑坐标(0,0)对应设备坐标(100,100)

textout(dc,0,0,'I love you, China',17);

Setmapmode(dc,MM_TEXT);
SetWindowOrgEx(dc,100,100,nil);

逻辑坐标(100,100)对应设备坐标(0,0)
textout(dc,200,200,'I love you, China',17);

Setmapmode(dc,MM_LOMETRIC);
textout(dc,356,-356,'I love you, China',17);

Setmapmode(dc,MM_HIMETRIC);
textout(dc,3560,-3560,'I love you, China',17);

Setmapmode(dc,MM_LOENGLISH);
textout(dc,140,-140,'I love you, China',17);

Setmapmode(dc,MM_ISOTROPIC);
SetwindowExtEx(dc,getclientRect.Right,getclientrect.Bottom,nil);
SetViewportExtEx(dc,getclientRect.Right,-getclientrect.Bottom,nil);
textout(dc,100,100,'I love you, China',17);

Setmapmode(dc,MM_ANISOTROPIC);
SetwindowExtEx(dc,getclientRect.Right,getclientrect.Bottom,nil);
SetViewportExtEx(dc,getclientRect.Right,getclientrect.Bottom,nil);
textout(dc,100,100,'I love you, China',17);

转载于:https://www.cnblogs.com/pavkoo/p/3300779.html

【笨嘴拙舌WINDOWS】GDI映射方式相关推荐

  1. 戏说 Windows GDI (3)

    继续讨论之前的问题,包括GDI对象的删除问题,窗口注册与销毁问题,最后用标尺的小例子说明问题 1.GDI对象的删除 由CGDIObject派生类创建的画笔.画刷和其他对象都要占用内存资源,因此在使用完 ...

  2. MFC和Win32之三___CGdiObject类和windows Gdi对象

    小结: 前面讲到的windows窗口对象,在windows下用句柄来代表之,并且用了一个数据结构WNDCLASS(窗口类)来描述之.同理,windows的Gdi对象也有一些句柄来代表之(比如hPen等 ...

  3. Windows GDI和GDI+编程实例剖析(1)

    Windows GDI和GDI+编程实例剖析(1) 作者:宋宝华  e-mail:21cnbao@21cn.com 1.基本概念 GDI在Windows中定义为Graphics Device Inte ...

  4. 原创]Windows Gdi入门初级应用(VC SDK)

    原创]Windows Gdi入门初级应用(VC SDK) 好久没发贴了,今天手痒痒,发一个. GDI的绘图函数基本上都是有状态的,所有的函数都要求一个HDC类型的句柄. 这个HDC的获得有几个途径Be ...

  5. GetBitmapBits和GetDIBits的区别(Windows GDI)

    Windows GDI中有两个用来得到位图图像数据的API,分别是GetBitmapBits和GetDIBits; 按照MSDN的解释,前者是用来得到设备独立位图的BITS, 后者是得到兼容位图的BI ...

  6. windows GDI+ 绘图的简单封装

    由于用mfc经常需要在界面上进行一些绘制输出,所以用windows GDI比较多,但是用windowsGDI 绘图比较麻烦,刚开始学的时候还经常弄不清一堆DC, Object, HANDLE到底是干啥 ...

  7. Windows GDI

    Windows GDI 在单任务环境如 MS-DOS 中,运行中的应用程序随时可自由地做它想做的事情,无论是在屏幕上画一条线,重新编写适配器的调色板,还是转换到另一种图像模式.而在窗口化多任务环境如 ...

  8. 【笨嘴拙舌WINDOWS】GDI(1)

    GDI:Graphics Device Interface 图形设备接口. 操作系统从命令行界面到图形界面的过度是施乐公司实验室对计算机普及作出的不可估量的贡献,苹果公司乔布斯与微软公司比尔盖茨对其的 ...

  9. 【笨嘴拙舌WINDOWS】GDI绘制区域

    在默认情况下,Gdi绘画操作的使用白纸(窗口的客户区)黑字(Pen的颜色)!前面我们已经讲过如何改笔,现在来学习改变白纸(GDI的绘制区域) 正常的纸为一个矩形形状!有时候小孩不小心撕掉纸的一角,不小 ...

最新文章

  1. bitwarden自建服务器,BitWarden
  2. 福利 | NVIDIA英伟达免费直播课:带你选择、搭建AI服务器!
  3. python 上传文件夹,python – 使用Flask上传文件夹/文件
  4. 写文件 —— 将内容按照指定格式写入配置文件(fprintf()函数-》》本机的监听地址列表中port值)
  5. 【美文欣赏】人人都有难念的经
  6. 2015 German Collegiate Programming Contest (GCPC 15)
  7. java命令行参数_Java学习从入门到精通,JDK工具条知识点学习资料
  8. python平台软件下载_Thonny(免费Python编程学习平台)V3.3.1 最新版
  9. Matlab语言标点说明
  10. vs201的vc++目录
  11. Hibernate使用手册(官网)
  12. service随APP关闭而关闭
  13. 计算机控制实验报告组态软件学习,中北大学组态软件实验报告
  14. 阿里面试官亲述:如何利用设计模式改善业务代码
  15. 什么是抽象类?抽象类有什么特点?举例说明抽象类及其成员的定义方法。
  16. 傻孩子菜单框架(转)
  17. 《Multi-Scale Residual Learning-using a Cycle Spinning CNN for Single Image De-Raining》
  18. 量化交易之vn.py篇 - 同步持仓发单逻辑(非净头寸 净头寸)
  19. 学计算机买华为还是买华硕,不考虑爱国因素,联想、华为、华硕等哪个品牌的笔记本电脑较好?...
  20. la是什么牌子_LA是什么牌子

热门文章

  1. 安装赫斯曼网管软件8.1
  2. i5-10400+ 华硕(ASUS)TUF GAMING B460M-PLUS (WI-FI) +0.6.4oc引导实现完美黑苹果
  3. jquery带缩略图轮播_带有jQuery和PHP的新鲜滑动缩略图库
  4. 云计算中可用的服务种类,主要可以划为哪几类?
  5. java-php-python-ssm在校大学生健康状况信息管理系统计算机毕业设计
  6. Mathtype公式转为latex格式
  7. ​怎么用手机在PDF上绘图?这个方法分享给你
  8. 微信图片上传,遇到一个神奇的jgp
  9. 如何快速搭建教育平台网站
  10. 《小说朗读器》又增新功能