Visual C++ 打印编程技术-编程基础-映射模式

映射模式:

Visual C++ 中采用的坐标映射方式使得用户图形坐标和输出设别的像素完全一致。

eg:当屏幕的像素大小为800X600时,每英寸包含屏幕像素为96,打印机则需要几倍的点数才能达到同样的逻辑尺寸

因此可通过转换坐标映射方式,是打印机采用的坐标比例比显示时所采用的坐标比例相应地大若干倍。

映射模式:在屏幕或打印机上绘图时候,可以使用英寸或者毫米代替作为单位(代替像素),往往更加直观。

PS: 设备单位,逻辑单位

设备单位:是传递给绘图函数的X和Y值,他们可以表示英寸和毫米

逻辑单位:X,Y在屏幕上的像像素,或是打印机上的点阵数。

点击鼠标以设备单位返回,如果想知道鼠标点击位图的什么位置,需要将设备单位转化为逻辑单位。

可用的映射模式
映射模式 逻辑单位
 MM_TEXT  1px
MM_LOMETRIC 0.1mm
MM_HIMETRIC 0.01mm
MM_LOENGLISH 0.01英寸
MM_HIENGLISH 0.001英寸
MM_TWIPS 1/1440英寸
MM_ISOTROPIC 用户定义的值,但X和Y方向相等(等比)
MM_ANISOTROPIC 用户定义的值,但X和Y方向任意

映射模式通过设备环境类的一个成员函数SetMapMode()来设置,只要把上述标志当作参数传入函数即可。设置映射模式后,传给任何绘图函数的坐标值都通过GDI内部的映射机制转换成设备坐标。

PS:MM_TEXT模式时,Y轴的正方向是沿屏幕垂直向下,X轴是沿屏幕向右

其它模式时,Y轴正方向沿屏幕垂直向上,X轴是沿屏幕向后

时间: 2024-11-09 15:24:45

Visual C++ 打印编程技术-编程基础-映射模式的相关文章

Visual C++ 打印编程技术-编程基础

背景: windows产生前,操作系统(如DOS等)都不提供支持图像处理的打印机驱动程序,使得程序员为打印出图像,不得不针对使用的打印机 自己编写设备驱动程序,导致了大量的.不必要的重复开发. 随着windows操作系统系统的面世,其所提供的设备环境模型允许开发人员将显示器.打印机和绘图仪等设备都堪称 二维绘图接口,并且 设置驱动程序已经由制造商完成,开发人员无需再编写打印驱动程序.Windows操作系统提供的API接口支持图像打印功能,但对开发者来 讲,打印依然是比较困难的编程任务.幸运的是,

Visual C++ 打印编程技术-编程基础-获取打印机

标准方法是用: EnumPrinters() 函数获取 #define PRINTER_ENUM_DEFAULT 0x00000001 #define PRINTER_ENUM_LOCAL 0x00000002 #define PRINTER_ENUM_CONNECTIONS 0x00000004 #define PRINTER_ENUM_FAVORITE 0x00000004 #define PRINTER_ENUM_NAME 0x00000008 #define PRINTER_ENUM_R

shell编程技术之-基础知识

一.脚本结构 linux下shell的脚本,是将一系列命令序列写在一个文本文件,而这个文本文件时可执行的.相对命令行来说,开发效率提高.因此他的构架有2部分构成#!和命令序列.其中#!指明此脚本是用哪个解析器来解析. 例如: 二.基础知识 2.1 变量 shell本允许用户设置和使用自己的变量,变量可以是数字或者字符串,用户无需指定其类型,也无需在使用前定义. 例如: 1 #!/bin/bash 2 3 #2.2 4 a="hello word" 5 b=5 6 echo "

多线程编程技术基础知识

GPS平台.网站建设.软件开发.系统运维,找森大网络科技!http://cnsendnet.taobao.com来自森大科技官方博客http://www.cnsendblog.com/index.php/?p=414 多线程编程技术基础知识 什么是进程? 当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源.而一个进程又是由多个线程所组成的. 什么是线程? 线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针.程序计数器等),但代码区是共享的,即不同

网络编程技术

                                                     网络编程技术 Java 网络编程 网络基础知识 网络编程的目的:直接或间接地通过网络协议与其他计算机进行通讯. 网络编程中有两个主要的问题: 1.如何准确地定位网络上一台或多台主机. 2.找到主机后如何可靠高效地进行数据传输. 目前较为流行的网络编程模型是客户端/服务器(C/S)结构. 即通信双方一方作为服务器等待客户提出请求并予以相应.客户则在需要服务时向服务器提出申请. 服务器始终运行,

计算机编程技术蓝图

目录: 0 硬件 1 基本概念 2 操作系统 3 编程技术  4 软件工程 5 高效的程序员 6 编程实践   自己主要关注2个方面,硬件方向的单片机(如何与各种硬件外设交互)和软件方向的计算机图形学(专注于图形图像的生成).其他还关心linux,网络. 从0开始 :) 0 硬件 对于一个计算机硬件,我们需要从哪些方面了解呢?以下是个列表(链接待整理). 模块 硬件 编程方面 接口方式 衡量指标 研究方向 处理器 pc,notebook,phone 线程 intel: Socket 478 ,L

编程技术网站收集

孟宪会之精彩世界http://dotnet.aspx.cc/最新网络技术,大量ASP.NET.C#.VB.NET.XML.ADO.NET.SVG.dotnet技术 中文c#技术站http://www.chinacs.net/涉及.NET网站资源,基础知识,代码收集 博客园http://www.cnblogs.com/专注于.NET技术 ccBoy的.NET 资源站点http://www.dotnettools.org/记录作者本人点点滴滴的WebLog和.NET Tools资源列表. 博客堂 h

socket网络编程的一些基础知识

源地址:http://blog.csdn.net/roger_77/article/details/1453049 目录: 1) 什么是套接字? 2) Internet 套接字的两种类型 3) 网络理论 4) 结构体 5) 本机转换 6) IP 地址和如何处理它们 7) socket()函数 8) bind()函数 9) connect()函数 10) listen()函数 11) accept()函数 12) send()和recv()函数 13) sendto()和recvfrom()函数 

110本经典编程技术书_程序员必备_菜鸟窝 资源收藏

下载总目录列表如下: [.NET]108<深入理解C#(中文第三版)>.pdf:  下载[.NET]109<NET CLR via C#(第4版)>.pdf: 下载[.NET]110<精通C#(第6版)>附源代码.zip: 下载[Android]1<Android编程权威指南第二版(英文版)>含源码.zip: 下载[Android]1<Android编程权威指南(第2版)>.pdf: 下载 https://itdocs.pipipan.com/f