1 / 45
文档名称:

第四章 图形和文本.ppt

格式:ppt   大小:1,330KB   页数:45页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第四章 图形和文本.ppt

上传人:350678539 2022/7/3 文件大小:1.30 MB

下载得到文件列表

第四章 图形和文本.ppt

相关文档

文档介绍

文档介绍:第四章 图形和文本
第一页,共45页。
抽象接口,负责管理用户绘图操作时功能的转换,用于实现图形操作与设备间的无关性,避免了用户对硬件直接进行操作。具体:
用户通过调用GDI函数与设备打交道,GDI通过不同设备提供的驱动程序DC等),每一个类都封装了设备环境句柄,并且它们的构造函数可自动调用上述获取设备环境的Win32 API函数,析构函数可自动调用释放设备环境的Win32 API函数。
在一个MFC应用程序中获得DC的方法主要有两种:
接受一个参数为指向CDC对象的指针;
声明一个 MFC设备环境类的对象,并使用this指针为该对象赋值。
第十页,共45页。
GDI对象是Windows图形设备接口的抽象绘图工具。除了画笔和画刷,其他GDI对象还包括字体、位图和调色板。MFC对GDI对象进行了很好的封装,提供了封装GDI对象的类,如CPen、CBrush、CFont、CBitmap和CPalette等,这些类都是GDI对象类CGdiObject的派生类。
GDI对象CGdiObject
第十一页,共45页。
:封装GDI画笔。用于绘制对象的边框以及直线和曲线。默认的画笔用于绘制与一个像素等宽的黑色实线。
:封装GDI画刷。画刷是用来填充一个封闭图形对象(如矩形、圆形)的内部区域的,默认画刷是白色。
:封装GDI字体对象。主要用于设置文本输出的效果,包括文字的大小、加粗、斜体、下划线等。
:封装GDI位图。提供成员函数装载和位图操作,位图可以用于填充区域。
:封装GDI调色板。包含系统可用的色彩信息,是
应用程序和彩色输出设备环境(如显示器)的接口。
:封装GDI区域。区域是窗口内的一块多边形或椭圆形区域。CRgn配合CDC类中与裁剪(clipping)有关的成员函数使用。
第十二页,共45页。
1 使用库存(stock)对象
无论以CDC类对象指针形式还是以CDC子类对象形式获得设备环境,系统都默认指定了一组绘图属性。
画笔和画刷的使用
第十三页,共45页。
使用SelectStockObject( )函数可以直接选择库存对象。如果选择成功,函数SelectStockObject( )将返回以前的CGdiObject对象的指针,可直接选用的库存对象见表。
第十四页,共45页。

(1) CPen PenNew(PS_DASH,1,RGB(255,0,0));
(2)  CPen Pen;
(PS_DASH,1,RGB(255,0,0));
  其中,参数依次是笔的样式、线的宽度、线的颜色。
画笔的操作
创建画笔
将画笔选入设备环境
删除画笔
2 创建和使用自定义画笔
hP=CreatePen(
int nPenStyle,
int nWidth,
COLORREF rgbColor);
HPEN hP;
DeleteObject(hP);
SelectObject(hdc,hP);
第十五页,共45页。

例如:CPen *PenOld; //用于保存原来的画笔
PenOld=pDC->SelectObject(&PenNew);

例如://恢复设备环境DC中原来的画笔
pDC->SelectObject(PenOld); //删除创建的画笔
();
第十六页,共45页。
创建画刷、选择创建的画刷和还原画刷等步骤。 类型不同的画刷使用不同的CBrush成员函数实现。
(1)创建指定颜色的实心画刷函数为:
 Bool CreateSolidBrush(COLORREF crColor);
 例如:CBrush brush;
(RGB(255,0,0));//红
HBRUSH CreatePatternBrush( HBITMAP hbmp);
HBRUSH CreateSolidBrush(COLORREF crColor);
HBRUSH CreateHatchBrush( int fnStyle, COLORREF clrref);
3 创建和使用自定义画刷
第十七页,共45页。
(2)创建阴影画刷函数:
Bool CreateHatchBrush(int nIndex,COLORREF crColor);
  参数nIndex用于指定阴影样式
例如 CBrus