首页 > 代码库 > CreateCompatibleDC工作原理
CreateCompatibleDC工作原理
WindowsGDI的接口没提供这样的功能机制,只能是先通过CreateCompatibleDC 创建一个与显示器设备内容兼容的内存设备内容,用SelectObject将位图选入内存设备内容,再用BitBlt函数进行从内存到显存的位块传输。 DC是设备内容,是我们问题的核心,请看《Windows程序设计》关于设备内容的讲解: 设备内容: 设备内容中包含许多确定GDI函数如何在设备上工作的目前「属性」,这些属性允许传递给GDI函数的参数只包含起始坐标或者尺寸信息,而不必包含Windows在设备上显示对象时需要的所有其它信息。例如,呼叫TextOut时,您只需要在函数中给出设备内容句柄、起始坐标、文字和文字的长度。您不必指定字体、文字颜色、文字后面的背景色彩以及字符间距,因为这些属性都是设备内容的一部分。当您想改变这些属性之一时,您呼叫一个可以改变设备内容中属性的函数,以后针对该设备内容的TextOut呼叫来使用改变后的属性。 内存设备内容: 设备内容指的是特殊的图形输出设备(例如显示器或者打印机)及其设备驱动程序。而内存设备内容只位于内存中,它不是真正的图形输出设备,但可以说与指定的真正设备「兼容」。也就是说内存设备内容具有和显示器设备内容相同的结构,也存放与屏幕显示相关的信息。 另外书中还说:内存设备内容是您可以选进位图的唯一一种设备内容型态。也就是说,我们不能够调用SelectObject(显示器设备内容句柄, 位图句柄)直接将位图选入显示器设备内容。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。