CreateCompatibleDC工作原理
WindowsGDI的接口没提供这种功能机制。仅仅能是先通过CreateCompatibleDC 创建一个与显示器设备内容兼容的内存设备内容。用SelectObject将位图选入内存设备内容,再用BitBlt函数进行从内存到显存的位块传输。 DC是设备内容。是我们问题的核心,请看《Windows程序设计》关于设备内容的解说:
设备内容:
设备内容中包括很多确定GDI函数怎样在设备上工作的眼下「属性」,这些属性同意传递给GDI函数的參数仅仅包括起始坐标或者尺寸信息,而不必包括Windows在设备上显示对象时须要的全部其他信息。比如。呼叫TextOut时,您仅仅须要在函数中给出设备内容句柄、起始坐标、文字和文字的长度。您不必指定字体、文字颜色、文字后面的背景色彩以及字符间距,由于这些属性都是设备内容的一部分。当您想改变这些属性之中的一个时,您呼叫一个能够改变设备内容中属性的函数,以后针对该设备内容的TextOut呼叫来使用改变后的属性。 内存设备内容: 设备内容指的是特殊的图形输出设备(比如显示器或者打印机)及其设备驱动程序。而内存设备内容仅仅位于内存中。它不是真正的图形输出设备,但能够说与指定的真正设备「兼容」。也就是说内存设备内容具有和显示器设备内容同样的结构,也存放与屏幕显示相关的信息。 另外书中还说:内存设备内容是您能够选进位图的唯一一种设备内容型态。也就是说,我们不能够调用SelectObject(显示器设备内容word=%E5%8F%A5%E6%9F%84&fr=qb_search_exp&ie=utf8" target="_blank" rel="nofollow" style="color:rgb(45,100,179); text-decoration:none">句柄, 位图处理)直接选入的显示设备内容的位图。
CreateCompatibleDC工作原理的更多相关文章
- 菜鸟学Struts2——Struts工作原理
		
在完成Struts2的HelloWorld后,对Struts2的工作原理进行学习.Struts2框架可以按照模块来划分为Servlet Filters,Struts核心模块,拦截器和用户实现部分,其中 ...
 - 【夯实Nginx基础】Nginx工作原理和优化、漏洞
		
本文地址 原文地址 本文提纲: 1. Nginx的模块与工作原理 2. Nginx的进程模型 3 . NginxFastCGI运行原理 3.1 什么是 FastCGI ...
 - HashMap的工作原理
		
HashMap的工作原理 HashMap的工作原理是近年来常见的Java面试题.几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间 ...
 - 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 工作原理和相关组件(三)
		
RAC 工作原理和相关组件(三) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...
 - ThreadLocal 工作原理、部分源码分析
		
1.大概去哪里看 ThreadLocal 其根本实现方法,是在Thread里面,有一个ThreadLocal.ThreadLocalMap属性 ThreadLocal.ThreadLocalMap t ...
 - Servlet的生命周期及工作原理
		
Servlet生命周期分为三个阶段: 1,初始化阶段 调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法 Servlet初始化阶段: 在 ...
 - 代码管理工具 --- git的学习笔记二《git的工作原理》
		
通过几个问题来学习代码管理工具之git 一.git是什么?为什么要用它?使用它的好处?它与svn的区别,在Mac上,比较好用的git图形界面客户端有 git 是分布式的代码管理工具,使用它是因为,它便 ...
 - 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL
		
周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...
 - 浏览器内部工作原理--作者:Tali Garsiel
		
本篇内容为转载,主要用于个人学习使用,作者:Tali Garsiel 一.介绍 浏览器可以被认为是使用最广泛的软件,本文将介绍浏览器的工作原理,我们将看到,从你在地址栏输入google.com到你看到 ...
 
随机推荐
- Gradle 教程:第一部分,安装【翻译】(转)
			
原文地址:http://rominirani.com/2014/07/28/gradle-tutorial-part-1-installation-setup/ 在这篇教程里,我们将主要讲解如何在我们 ...
 - Android研究之手PullToRefresh(ListView GridView 下拉刷新)使用具体解释
			
 群里一哥们今天聊天偶然提到这个git hub上的控件:pull-to-refresh ,有兴趣的看下,样例中的功能极其强大,支持非常多控件.本篇博客具体给大家介绍下ListView和GridVi ...
 - Gradle构建多模块项目(转)
			
废话不多说,直接进入主题. 1. 创建项目 首先创建项目,名称为 test: mkdir test && cd test gradle init 这时候的项目结构如下: ➜ test ...
 - Android lint具 常见问题检查
			
1. Correctness 1) DuplicatedIds Layout于id应该唯一 2) NewApi 代码中使用的某些API高于Manifest中的Min SDK 3) Inconsiste ...
 - WebAPI 15 CORS
			
WebAPI 15 CORS 同源策略 首先基于安全的原因,浏览器是存在同源策略这个机制的,同源策略阻止从一个源加载的文档或脚本获取或设置另一个源加载的文档的属性. 对于同源必须要求URL在如下几个方 ...
 - 可以改变文本行距(行间距)的Label
			
////////////////////////////////////////////////////// /// ///功能:可以改变文本行距(行间距)的Label ///作者:emanlee / ...
 - 最少拦截系统(杭电1257)(DP)+(贪心)
			
最少拦截系统 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
 - ruby简单的基本 3
			
类 Ruby一切都是对象,它包含了一个恒定.例如,可以使用.class物业查看对象的类型,你可以看一下1.class.你会发现常1类型是Fixnum,1但它是Fixnum的一个例子. Ruby本类cl ...
 - ASP.NET vNext or .NET vNext?
			
ASP.NET vNext or .NET vNext? 从概念和基础开始 vNext在曝光以来绝大多数以ASP.NET vNext这样的的字眼出现,为什么这边会提及.NET vNext?原因是我认为 ...
 - cocos2d-html5基金会
			
1 环境结构 版本号Cocos2d-html5-v2.2,tomcat7.0 构造tomcat.然后直接解压Cocos2d-html5-v2.2.zip.解压后根文件访问的文件夹index.html你 ...