Visual C++ 打印编程技术-内存设备环境

内存设备环境

内存设备环境是一个没有设备与它联系的环境。一般利用与某个标准设备环境兼容的内存设备环境把一个位图复制到屏幕上去。为此可以先创建一个与某个标准设备环境兼容的内存设备环境,然后把所要显示的位图复制到内存设备环境中,最后再从内存设备环境复制到真实的设备环境,从而把位图显示出来。

eg:

void CMainFrame::OnBitmapDraw()
{
	CDC* pCDC=GetDC(); //获取当前设备上下文
	CBitmap bitmap;  //定义CBitmap对象
	bitmap.LoadBitmap(IDB_BITMAP_1); // 加载指定ID位图对象
        CDC memDC;   //定义内存上下文信息,此处没通过new创建,会自动释放,不需要显示调用ReleaseDC
	memDC.CreateCompatibleDC(pCDC); //创建与指定设备兼容的内存上下文
                                                                   //此处是窗体
	memDC.SelectObject(&bitmap); //选择对象到内存环境上下文
	BITMAP bmInfo;//BITMAP structure
                      //The BITMAP structure defines the type, width, height, color           format, and bit values of a bitmap.
	bitmap.GetObject(sizeof(bmInfo),&bmInfo); //检索bitmap图像信息,赋给bmInfo (获取图像高宽信息)
	pCDC->BitBlt(100,0,bmInfo.bmWidth,bmInfo.bmHeight,&memDC,0,0,SRCCOPY);//将内存环境山下文复制到设备上下文
	ReleaseDC(pCDC);
}

  

时间: 2024-08-29 10:12:40

Visual C++ 打印编程技术-内存设备环境的相关文章

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

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

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

映射模式: Visual C++ 中采用的坐标映射方式使得用户图形坐标和输出设别的像素完全一致. eg:当屏幕的像素大小为800X600时,每英寸包含屏幕像素为96,打印机则需要几倍的点数才能达到同样的逻辑尺寸 因此可通过转换坐标映射方式,是打印机采用的坐标比例比显示时所采用的坐标比例相应地大若干倍. 映射模式:在屏幕或打印机上绘图时候,可以使用英寸或者毫米代替作为单位(代替像素),往往更加直观. PS: 设备单位,逻辑单位 设备单位:是传递给绘图函数的X和Y值,他们可以表示英寸和毫米 逻辑单位

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

[00016]-[2015-09-05]-[00]-[Window GDI编程 --- 设备环境]

[设备环境] DC(Device Context)在这里我们需要明白一点 Windows SDK 和 MFC类封装 绘图编程的一点区别Window SDK 由于是纯粹采用WindowAPI 来实现编程 有自己的应用程序测基本框架MFC 由于采用采用类封装的机制 将C++面向对象编程和windows的消息机制很好地结合在一起 Window SDK 绘图注重句柄的操作所以 HDC HBRUSH HBITMAP等类型的变量比较常用MFC中 CDC CBURSH CBitmap等类的变量操作比较常见,但

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

高性能网络编程技术

高性能网络编程技术 作者:jmz (360电商技术组) 如何使网络服务器能够处理数以万计的客户端连接,这个问题被称为C10K Problem.在很多系统中,网络框架的性能直接决定了系统的整体性能,因此研究解决高性能网络编程框架问题具有十分重要的意义. 1. 网络编程模型 在C10K Problem中,给出了一些常见的解决大量并发连接的方案和模型,在此根据自己理解去除了一些不实际的方案,并做了一些整理. 1.1.PPC/TPC模型 典型的Apache模型(Process Per Connectio

聊聊默认支持的各种配置源[内存变量,环境变量和命令行参数]

聊聊默认支持的各种配置源[内存变量,环境变量和命令行参数] 较之传统通过App.config和Web.config这两个XML文件承载的配置系统,.NET Core采用的这个全新的配置模型的最大一个优势就是针对多种不同配置源的支持.我们可以将内存变量.命令行参数.环境变量和物理文件作为原始配置数据的来源,如果采用物理文件作为配置源,我们可以选择不同的格式(比如XML.JSON和INI等) .如果这些默认支持的配置源形式还不能满足你的需求,我们还可以通过注册自定义ConfigurationSour

一 GPU 编程技术的发展历程及现状

前言 本文通过介绍 GPU 编程技术的发展历程,让大家初步地了解 GPU 编程,走进 GPU 编程的世界. 冯诺依曼计算机架构的瓶颈 曾经,几乎所有的处理器都是以冯诺依曼计算机架构为基础工作的. 该系统架构简单来说就是处理器从存储器中不断取指,解码,执行. 但如今,这种系统架构遇到了瓶颈:内存的读写速度已经跟不上 CPU 的时钟频率了.具有此特征的系统被称为内存受限型系统,目前的绝大多数计算机系统都属于此类型. 为了解决这个问题,传统的解决方案是使用缓存技术.通过给 CPU 设立多级缓存,能够大

网络编程技术

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