Windows绘图中的GDI映射模式】的更多相关文章

对Windows编程新手来说,GDI编程中最困难的部分就是映射模式(Mapping Mode). 什么是映射模式? 我们知道,GDI画图是在设备描述表这个逻辑意义上的显示平面上进行,其使用的是逻辑坐标,简单地说,映射模式就是设备描述表的属性,用于确定从逻辑坐标到设备坐标值的转换方式. Windows支持8中映射模式:MM_TEXT为默认. /* Mapping Modes #define MM_TEXT                 1 #define MM_LOMETRIC        …
GDI映射模式(mapping mode):和映射模式紧密相关的还有4个其它的设备环境属性:1.窗口原点(window origin)2.视口原点(viewport origin)3.窗口范围(window extents)4.视口范围(viewport extents)所有GDI函数中(如TextOut),参数坐标值都是“逻辑单位(logical unit)”, Windows必须将逻辑单位转换为“设备单位(device unit)”Windows定义了8种映射模式.他们在WINGDI.H中定…
概述 调用 SetMapMode 函数可以设置映射模式: int SetMapMode( HDC hdc, // 设备环境句柄 int fnMapMode // 要设置的映射模式 ); 同样,调用 GetMapMode 函数可以获取映射模式: int GetMapMode( HDC hdc // 设备环境句柄 ); 注: 默认情况下,映射模式是 MM_TEXT,以像素为单位操作. 映射模式的逻辑坐标只对以设备环境句柄为参数的 GDI 函数有效,非 GDI 函数将继续使用设备坐标 设备坐标系统 屏…
逻辑坐标:使用GDI绘图时使用的坐标系 设备坐标系:实际设备(显示器.打印机)的坐标系,即我们实际看到的坐标系. 坐标空间 在Windows NT/2000中Win32 API中支持以下四层坐标空间: 世界坐标空间:引入World是为了对图像进行平移.缩放.剪切等操作,最大范围为232个单位高和232个单位宽,初始时X轴正向向右,Y轴正向向上,World坐标空间可以成为逻辑空间. 页面坐标空间(Page坐标空间):当没有World坐标空间时,它就是逻辑空间,最大范围是232高和宽.初始时,X正向…
原文链接:http://blog.csdn.net/charlessimonyi/article/details/8264572 在GDI绘图前,一般要设置映射模式.映射模式是什么呢?它是逻辑长度单位与实际长度单位的一中转换关系,比如我要画一个长为800单位,宽为600单位的矩形,那么在不同的映射模式下,一个单位可能相当于一个像素,也可能相当于一毫米,也可能相当于一微米.也就是说在有的映射模式下,我们指定的800单位的长度相当于800像素,在有的映射模式下,我们指定的800单位的长度相当于800…
内容摘要:本文主要讨论和分析在UEFI+GPT模式下的Windows系统(主要是最新的Win10X64)中默认的分区结构和默认的分区大小,硬盘整数分区.4K对齐.起始扇区.恢复分区.ESP分区.MSR分区,哪些分区是必要的,删除是否会影响系统运行. 建议初级读者先了解什么是BIOS+MBR和UEFI+GPT,再阅读以下内容,因为涉及的内容太多,这些知识点不作为本文的讨论内容,建议百度搜索:"BIOS+MBR"."UEFI+GPT"."BIOS+MBR UE…
Delphi的VCL类库中,默认使用的是GDI绘图接口,该接口封装了Win32 GDI接口,能够满足基本的绘图功能,但如果要实现更高级的绘图功能,往往比较困难,GDI+是微软在GDI之后的一个图形接口,功能比GDI丰富很多,在VCL中使用GDI+,能够实现很多高级绘图功能. 目前有多种Delphi对GDI+的封装实现,以下介绍最简单的两种: 1.使用Delphi内置的GDI+接口 首先,创建一个VCL Form应用,窗口文件如下: Pascal Code 12345678910111213141…
本篇读书笔记主要记录QPainter的复合模式&&双缓冲绘图&&绘图中的其他问题   大纲:     复合模式     双缓冲绘图     绘图中的其他问题         重绘事件         剪切         读入和写入图像         播放GIF         渲染SVG   复合模式 QPainter提供了复合模式(Composition Modes)来定义如何完成数字图像的复合,即如何将源图像的像素和目标图像的像素进行合并.QPainter 提供的常…
pDC->SetMapMode(MM_ANISOTROPIC ); //首先选择MM_ANISOTROPIC映射模式,其它映射模式都不合适 pDC->SetWindowExt( max(abs(rMH.Xmax),abs( rMH.Xmin)), max(abs(rMH.Ymax),abs(rMH.Ymin))); //都以绝对值中较大的为参考 pDC->SetViewportExt( rClient.right/, -rClient.bottom/); //与客户区的一半对应,方向可选…
VC范例,400多个例子源代码下载 http://download.csdn.net/detail/bigtree_mfc/7727977 VS2013中使用GDI+绘图和VC6.0不同,在VC6.0中能绘出的图像在VS2013中不会显示,原因就是在VS2013中需要添加初始化GDI+: 绘图 对话框视图类中:(绘图部分大同小异,) void **View::OnDraw(CDC *pDC){ //初始化部分 GdiplusStartupInput gdiplusStartupInput; UL…