VC++程序设计与应用--图形和文本输出

更新时间:2023-06-28 17:58:38 阅读: 评论:0

VC++程序设计与应⽤--图形和⽂本输出
⽬录
前⾔
本篇⽂章介绍图形和⽂本输出
⼀、图形与⽂本
1.1 图形设备接⼝和设备环境
1.1.1 图形设备接⼝
Windows提供了⼀个称为图形设备接⼝(Graphics Device Interface,GDI)的抽象接⼝。
GDI负责管理⽤户绘图操作时功能的转换,实现设备⽆关性。
应⽤程序可以使⽤GDI创建3种类型的图形输出:⽮量图形、光栅图形和⽂本。
1.⽮量图形
种菖蒲
⽮量图形输出是指画线和填充图形,包括点、直线、曲线、多边形、扇形和矩形等。
2.光栅图形
光栅图形输出是指光栅图形函数对以位图形式存储的数据进⾏操作,它包括各种位图和图标的输出。
3.⽂本
与DOS字符⽅式下输出⽂本不同,Windows中的⽂本是按图形⽅式输出的。
1.1.2 设备环境
Windows应⽤程序的输出不直接⾯向显⽰器或打印机等物理设备,⽽是⾯向⼀个称之为设备环境(Device Context,DC)的虚拟逻辑设备。
玉轴设备环境DC,也称设备描述表或设备上下⽂。它是由GDI创建、⽤来代表设备连接的数据结构。
DC的主要功能有以下⼏种:
(1) 允许应⽤程序使⽤⼀个输出设备。
(2) 提供Windows应⽤程序、设备驱动和输出设备之间的连接。
(3) 保存当前信息,例如当前的画笔、画刷、字体和位图等图形对象及其属性,以及颜⾊和背景等影响图形输出的绘图模式。
(4) 保存窗⼝剪切区域,限制程序输出到输出设备中窗⼝覆盖的区域。
1.1.3 设备环境类
1.设备环境类CDC及其功能
2.设备环境类CDC的⼀些常⽤函数
装点门面1.1.4  颜⾊的设置
Windows⽤COLORREF类型的数据存放颜⾊,它是⼀个32位整数。
春日古诗的诗意任何⼀种颜⾊都是由红、绿、蓝3种基本颜⾊组成的,COLORREF类型数据的低位字节存放红⾊强度值,第2个字节存放绿⾊强度值,第3个字节存放蓝⾊强度值,⾼位字节为0,每⼀种颜⾊分量的取值范围为0~255。
MFC提供了RGB宏,⽤于设置颜⾊,其使⽤形式为:
天津英文RGB(byRed,byGreen,byBlue)
其中参数byRed、byGreen和byBlue分别表⽰红、绿、蓝分量值(范围0~255)。
下表列出了⼀些常⽤颜⾊的RGB值。
1.1.5  获取设备环境
1.传统的SDK获取设备环境的⽅法
采⽤SDK⽅法编程,获取设备环境的⽅法有两种:
(1)在WM_PAINT消息处理函数中通过调⽤API函数BeginPaint( )获取设备环境,在消息处理函数返回前调⽤API函数EndPaint( )释放设备环境。
(2)如果绘图操作不是在WM_PAINT消息处理函数中,需要通过调⽤API函数GetDC( )获取设备环境,调⽤API函数ReleaDC( )释放设备环境。
徐明辉2.MFC应⽤程序获取设备环境的⽅法
在⼀个MFC应⽤程序中获得DC的⽅法主要有两种:
(1)接受⼀个参数为指向CDC对象的指针;
(2)声明⼀个 MFC设备环境类的对象,并使⽤this指针为该对象赋值。
1.2 GDI对象类CGdiObject
GDI对象是Windows图形设备接⼝的抽象绘图⼯具。除了画笔和画刷,其他GDI对象还包括字体、位图和调⾊板。
MFC对GDI对象进⾏了很好的封装,提供了封装GDI对象的类,如CPen、CBrush、CFont、CBitmap和CPalette等,这些类都
是GDI对象类CGdiObject的派⽣类,它们的继承关系如图所⽰。
1.3 画笔和画刷的使⽤
1.3.1 使⽤库存(stock)对象
选择库存对象:
使⽤SelectStockObject( )函数
如果选择成功,函数SelectStockObject( )将返回以前的CGdiObject对象的指针。
利⽤CGdiObject类的成员函数CreateStockObject( )将GDI对象设置成指定的库存对象。
声明⼀个GDI对象,调⽤成员函数SelectObject( ),将与库存对象关联的GDI对象选⼊当前的设备环境,代码如下所⽰。
CBrush *BrushOld,BrushNew;
//关联库存画刷对象
BrushNew.CreateStockObject(BLACK_BRUSH);
BrushOld=pDC->SelectObject(&BrushNew);
1.3.2  创建和使⽤⾃定义画笔
黑8台球如果要在设备环境中使⽤⾃⼰的画笔绘图,⾸先需要创建⼀个指定风格的画笔,然后选择所创建的画笔,最后还原画笔。
1.创建画笔
创建画笔的⽅法有两种:
(1)定义画笔对象时直接创建
CPen PenNew(PS_DASH,1,RGB(255,0,0));一个穴一个果
笔的样式线的宽度线的颜⾊
(2)先定义⼀个没有初始化的画笔对象,再调⽤CreatePen( )函数创建指定画笔。
CPen Pen;
pen.CreatePen(PS_DASH,1,RGB(255,0,0));

本文发布于:2023-06-28 17:58:38,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1060578.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:设备   对象   图形   环境   画笔   输出   程序
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图