MFC Windows程序设计 读书笔记2

本文介绍了Windows中的GDI(图形设备接口)和MFC中的设备描述表(CDC类)概念,阐述了设备描述表如何作为图形输出的桥梁,以及在MFC中如何获取和使用设备描述表。详细讲解了设备描述表的属性、映射坐标系、画直线和曲线、GDI画笔和CPen类、画文本、GDI字体与CFont类,并给出了代码示例。
摘要由CSDN通过智能技术生成

Windows中负责图形输出的是Graphics Device Interface(图形设备接口),或称GDI。本节主要讲述CDC类和它的继承类,并介绍三种最常用的GDI基本元素,画笔、画刷、和字体,同时还将示范如何在窗口中添加滚动条。

Windows GDI

在窗口化、多任务的Windows环境中,各个应用程序的输出必须限制到自己窗口上,做到互不干扰,GDI使用以简单的机制来保证在窗口中的画图程序遵循这一规则,这种机制即为设备描述表(DC)。在平面上画图之前,Windows程序从GDI获取设备描述表句柄,并每次调用GDI的输出函数时候将句柄返回给GDI,获得设备描述表句柄后,同一GDI函数可用来向多种输出设备上画图。

如何理解设备描述表?

GDI是Graphics Device Interface的缩写,含义是图形设备接口,它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。
在Windows操作系统下,绝大多数具备图形界面的应用程序都离不开GDI,我们利用GDI所提供的众多函数就可以方便的在屏幕、打印机及其它输出设备上输出图形,文本等操作。GDI的出现使程序员无需要关心硬件设备及设备驱动,就可以将应用程序的输出转化为硬件设备上的输出,实现了程序开发者与硬件设备的隔离,大大方便了开发工作。

设备描述表是一个定义一组图形对象及其属性、影响输出的图形方式(数据)结构。windows提供设备描述表,用于应用程序和物理设备之间进行交互,从而提供了应用程序设计的平台无关性。设备描述表又称为设备上下文,或者设备环境。
设备描述表是一种数据结构,它包括了一个设备(如显示器和打印机)的绘制属性相关的信息。所有的绘制操作通过设备描述表进行。设备描述表与大多WIN32结构不同,应用程序不能直接访问设备描述表,只能由各种相关API函数通过设备描述表的句柄间接访问该结构。

GDI是如何实现输出的? 

要想在屏幕或者其它输出设备上输出图形或者文字,那么我们就必须先获得一个称为设备描述表( DC:Device Context)对象的句柄,以它为参数,调用各种GDI函数实现各种文字或图形的输出。设备描述表是GDI内部保存数据的一种数据结构,此结构中的属性内容与特定的输出设备(显示器,打印机等)相关,属性定义了GDI函数的工作细节,在这里属性确定了文字的颜色,x坐标和y坐标映射到窗口显示区域的方式等。
 设备描述表句柄一旦获得,那么系统将使用默认的属性值填充设备描述表结构。
 如果有必要,我们可以使用一些GDI函数获取和改变设备描述表中的属性值。
在使用MFC编写Windows程序时,设备描述表具有更加突出的作用,除了可作为通向各种输出设备的桥梁之外,设备描述表对象还封装了程序用来产生输出的GDI函数,在MFC中,你不用捕获设备描述表句柄或者是调用GDI输出函数,至少不用直接捕获或者是调用,而是通过创建以设备描述表对象并通过其成员函数来画图。
MFC的CDC类将Windows设备描述表和获取设备描述表句柄的GDI函数就近封装在一起,而CDC派生类如CPaintDC和CCLientDC则代表Windows的应用程序使用不同的类型。
参考博客:http://blog.163.com/efjing@126/blog/static/424848482008102711235165/

MFC设备描述表类

获取MFC设备描述表:

CDC * pDC = GetDc();
do some drawing;
RelaseDC(pDC);

通过调用CD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值