CDC类详解.docx

上传人:b****8 文档编号:9308794 上传时间:2023-05-18 格式:DOCX 页数:16 大小:23.28KB
下载 相关 举报
CDC类详解.docx_第1页
第1页 / 共16页
CDC类详解.docx_第2页
第2页 / 共16页
CDC类详解.docx_第3页
第3页 / 共16页
CDC类详解.docx_第4页
第4页 / 共16页
CDC类详解.docx_第5页
第5页 / 共16页
CDC类详解.docx_第6页
第6页 / 共16页
CDC类详解.docx_第7页
第7页 / 共16页
CDC类详解.docx_第8页
第8页 / 共16页
CDC类详解.docx_第9页
第9页 / 共16页
CDC类详解.docx_第10页
第10页 / 共16页
CDC类详解.docx_第11页
第11页 / 共16页
CDC类详解.docx_第12页
第12页 / 共16页
CDC类详解.docx_第13页
第13页 / 共16页
CDC类详解.docx_第14页
第14页 / 共16页
CDC类详解.docx_第15页
第15页 / 共16页
CDC类详解.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

CDC类详解.docx

《CDC类详解.docx》由会员分享,可在线阅读,更多相关《CDC类详解.docx(16页珍藏版)》请在冰点文库上搜索。

CDC类详解.docx

CDC类详解

CDC 

CObject

 └CDC

CDC类定义得就是设备上下文对象得类。

CDC对象提供处理显示器或打印机等设备上下文得成员函数,以及处理与窗口客户区对应得显示上下文得成员。

通过CDC对象得成员函数进行所有得绘图。

类对设备上下文操作提供了成员函数,处理绘图工具。

安全型图形设备接口(GDI)对象收集,以及处理颜色与调色板。

它还为获取与设置绘图属性、映射,处理视点、窗口扩展、转换坐标,处理区域、剪贴、绘制直线及绘制简单椭圆与多边形等形状提供了成员函数。

另外还为绘制文本、处理字体,使用打印机跳转,滚动与播放元文件提供成员函数。

使用CDC对象时要构造它,然后调用与它平等得、使用设备上下文得Windows函数得成员函数。

注意:

Windows95下所有屏幕坐标限制在16位以内。

因此向CDC成员函数传递得int必须在-32768至32767之间。

为了特定用途,Microsoft基本类库提供了几个CDC派生类。

CPaintDC

包括BeginPaint与EndPaint调用。

CClientDC

管理窗口用户区对应得显示上下文。

CWindowDC

管理与整个窗口对应得显示上下文,包括它得结构与控件。

CMetaFileDC

与带元文件得设备上下文对应。

CDC包含m_hDC与m_hAttribDC两个设备上下文,它们在CDC对象创建时参考同一个设备。

CDC指导所有对m_hDC得输出GDI调用以及对m_hAttribDC得大部分属性GDI调用(GetTextColor就是属性调用得例子,而SetTextColor就是一个输出调用)。

例如框架使用这两个设备上下文实现CMetaFileDC对象,在从物理设备读取属性期间向元文件发送输出。

打印预览以相同风格在框架中实现。

还可以以相似方法在特殊应用代码中使用这两个设备上下文。

可能多次需要来自m_hDC与m_hAttribDC设备上下文得文本度量信息。

以下几对函数提供了这项功能:

jwZwNFY。

l8SuPrF。

NGAzWSc。

使用m_hAttribDC

使用m_hDC

GetTextExtent

GetOutputTextExtent

GetTabbedTextExtent

GetOutputTabbedTextExtent

GetTextMetrics

GetOutputTextMetrics

GetCharWidth

GetOutputCharWidth

CDC类成员 

数据成员

m_hDC

CDC对象使用得输出设备上下文

m_hAttribDC

CDC对象使用得输出属性上下文

构造函数

CDC

构造一个CDC对象

初始化

CreateDC

为指定设备创建设备上下文

CreateIC

为指定设备创建信息上下文。

这提供了一种不创建设备上下文即获取有关设备信息得快速方式

CreatepatibleDC

创建内存设备上下文,与另一个设备上下文匹配。

可以用它在内存中准备图像

DeleteDC

删除CDC对象对应得Windows设备上下文

FromHandle

给定设备上下文句柄时,返回指向CDC对象得指针。

如果CDC对象未附加到句柄,则创建并附加一个临时CDC对象

DeleteTempMap

由CWinApp空闲时间句柄调用,删除FromHandle创建得临时CDC对象。

同时分离设备上下文

Attach

把Windows设备上下文附加到这个CDC对象

Detach

从CDC对象分离Windows设备上下文、

SetAttribDC

设置属性设备上下文m_hAttribDC

SetOutputDC

设置输出设备上下文m_hDC

ReleaseAttribDC

释放属性设备上下文m_hAttribDC

ReleaseOutputDC

释放输出设备上下文m_hDC

GetCurrentBitmap

返回指向当前选择得CBitmap对象得指针

GetCurrentBrush

返回指向当前选择得CBrush对象得指针

GetCurrentFont

返回指向当前选择得CFont对象得指针

GetCurrentPalette

返回指向当前选择得CPalette对象得指针

GetCurrentPen

返回指向当前选择得CPen对象得指针

GetWindow

返回显示设备上下文对应得窗口

设备上下文函数

GetSafeHdc

返回输出设备上下文m_hDC

SaveDC

保存设备上下文当前状态

RestoreDC

恢复SaveDC保存得设备上下文以前状态

ResetDC

更新m_hAttribDC设备上下文

GetDeviceCaps

获取有关给定显示设备功能得指定类型指定设备信息

IsPrinting

确定正在使用得设备上下文就是否用于打印

安全型选择帮助器

GetBrushOrg

获取当前画刷得起点

SetBrushOrg

指定选入设备上下文得下一个画刷得起点

EnumObjects

枚举设备上下文中有效得笔与画刷

颜色与颜色调色板函数

SelectObject

选择笔等GDI绘图对象

SelectStockObject

选择Windows提供得预定义得一个笔、画刷或字体

绘图工具函数

GetNearestColor

获取与给定设备能显示得指定逻辑颜色最接近得逻辑色

SelectPalette

选择逻辑调色板

RealizePalette

把当前逻辑调色板中得调色板入口映射到系统调色板

UpdateColors

通过客户区当前颜色在像素基础上与系统调色板得匹配,更新设备上下文得客户区

GetHalftoneBrush

获取半色调画刷

绘图属性函数

GetBkColor

获取当前背景色

SetBkColor

设置当前背景色

GetBkMode

获取背景模式

SetBkMode

设置背景模式

GetPolyFillMode

获取当前多边形填充模式

SetPolyFillMode

设置多边形填充模式

GetROP2

获取当前绘图模式

SetROP2

设置当前绘图模式

GetStretchBltMode

获取当前位图拉伸模式

SetStretchBltMode

设置位图拉伸模式

GetTextColor

获取当前文本颜色

SetTextColor

设置文本颜色

GetColorAdjustment

获取用于设备上下文得颜色调整值

SetColorAdjustment

使用指定值设置设备上下文得颜色调整值

映射函数

GetMapMode

获取当前映射模式

SetMapMode

设置当前映射模式

GetViewportOrg

获取视区起点得X与Y坐标

SetViewportOrg

设置视区起点

OffsetViewportOrg

相对于当前视区起点坐标修改视区起点

GetViewportExt

获取视区X与Y范围

SetViewportExt

设置视区X与Y范围

ScaleViewportExt

相对于当前值修改视区范围

GetWindowOrg

获取参应窗口起点得X与Y坐标

SetWindowOrg

设置设备上下文得窗口起点

OffsetWindowOrg

相对于当前窗口起点得坐标修改窗口起点

GetWindowExt

获取对应窗口得X与Y坐标

SetWindowExt

设置对应窗口得X与Y坐标

ScaleWindowExt

相对于当前值修改窗口范围

坐标函数

DPtoHIMETRIC

设备单位转换为HIMETRIC单位

LPtoHIMETRIC

逻辑单位转换为HIMETRIC单位

DPtoLP

设备单位转换为逻辑单位

LPtoDP

逻辑单位转换为设备单位

HIMETRICtoDPHIMETRIC

单位转换为设备单位

HIMETRICtoLPHIMETRIC

单位转换为逻辑单位

区域函数

FillRgn

用指定画刷填充指定区域

FrameRgn

用画刷在指定区域周围绘制边线

InvertRgn

反转区域中得颜色

PaintRgn

用选取得画刷填充区域

剪切函数

SetBoundsRect

控制指定设备上下文绑定得矩形信息得累计

GetBoundsRect

返回到设备上下文当前累计得绑定矩形

GetClipBox

获取当前剪切边界周围最紧绑定矩形得维数

SelectClipRgn

使用指定模式合并给定区域与当前剪切区域

ExcludeClipRect

创建包含现有剪切区域减掉指定矩形得一个新剪切区域

ExcludeUpdateRgn

通过从剪切区域排除窗口中得更新区域,防止在窗口得无效区域中绘图

IntersectClipRect

通过构成当前区域与矩形得交集创建一个新得剪切区域

OffsetClipRgn

移动给定设备得剪切区域

PtVisible

确定给定点就是否在剪切区域内

RectVisible

确定给定矩形得任何部分就是否在剪切区域内

线输出函数

GetCurrentPosition

获取笔得当前位置(以逻辑坐标表示)

MoveTo

移动当前位置

LineTo

从当前位置到一点画直线,但不包括那个点

Arc

画一段椭圆弧

ArcTo

画一段椭圆弧。

除了更新当前位置以外,这个函数与Arc类似

AngleArc

画一条线段与圆弧,把当前位置移到圆弧终点

GetArcDirection

对设备上下文返回当前圆弧方向

SetArcDirection

设备圆弧与矩形函数要用到得绘图方向

PolyDraw

画一组线段与Bezier样条。

这个函数更新当前位置Polyline画一组与指定点连接得线段

PolyPolyline

画多组相连线段。

这个函数不使用也不更新当前位置

PolylineTo

画一条或多条直线,并把当前位置移到最后一条直线得终点

PolyBezier

画一条或多条Bezier样条。

不使用也不更新当前位置

PolyBezierTo

画一条或多条Bezier样条,并把当前位置移到最后一条Bezier样条得终点

简单绘图函数

FillRect

用指定画刷填充给定矩形

FrameRect

在矩形周围绘制边界

InvertRect

反转矩形内容

DrawIcon

绘制图标

DrawDragRect

拖拽矩形时擦除并重绘它

FillSolidRect

用实颜色填充矩形

Draw3Drect

绘制三维矩形

DrawEdge

绘制矩形边

DrawFrameControl

绘制帧控件

DrawState

显示图像并应用可视化效果来表示一个状态

椭圆与多边形函数

Chord

绘制椭圆弧(椭圆与一条线段相交围成得闭合图形)

DrawFocusRect

绘制用于表示焦点得风格得矩形

Ellipse

绘制椭圆

Pie

绘制饼形图

Polygon

绘制多边形,包含由线段连接得一个或多个点(顶点)

PolyPolygon

创建使用当前多边形填充模式得两个或多个多边形,多边形可以相互分开或叠加

Polyline

绘制多边形,包含连接指定点得一组线段

Rectangle

使用当前笔绘制矩形,用当前画刷填充

RoundRect

使用当前笔绘制圆角矩形,用当前画刷填充

位图函数

PatBlt

创建位特征

BitBlt

从指定设备上下文拷贝位图

StretchBlt

把位图由源矩形与设备移动到目标矩形,必要时拉伸或压缩位图以适合目标矩形得维数

GetPixel

获取指定点像素得RGB颜色值

SetPixel

设置指定点像素为最接近指定色得近似值

SetPixelV

设置指定点坐标为最接近指定色得近似值。

SetPixelV比SetPixel快,原因就是它不用返回实际绘制点得颜色值

FloodFill

用当前画刷填充区域

ExtFloodFill

用当前画刷填充区域。

比FloodFill成员函数提供更多灵活性

MaskBlt

使用给定屏蔽与光栅操作对源与目标位图合并颜色数据

PlgBlt

从源设备上下文得指定矩形到给定设备上下文中指定平行多边形,执行颜色数据位得位块传递

文本函数

TextOut

用当前选取字体在指定位置写字符串

ExtTextOut

用当前选取字体在矩形区域写字符串

TabbedTextOut

在指定位置写字符串,制表符扩展为制表符停止位置数组中指定值

DrawText

在指定矩形内绘制格式化文本

GetTextExtent

使用当前字体在属性设备上下文上计算文本行得宽度与高度,确定维数

GetOutputTextExtent

使用当前字体在输出设备上下文上计算文本行得宽度与高度,确定维数

GetTabbedTextExtent

使用当前字体在属性设备上下文上计算字符串得宽度与高度

GetOutputTabbedTextExtent

使用当前字体在输出设备上下文上计算字符串得宽度与高度

GrayString

在给定位置绘制暗(灰色)文本

GetTextAlign

获取文本对齐标记

SetTextAlign

设置文本对齐标记

GetTextFace

以空终止字符串形式把当前字体字样名拷贝到缓冲区

GetTextMetrics

从属性设备上下文为当前字体获取度量

GetOutputTextMetrics

从输出设备上下文为当前字体获取度量

SetTextJustification

把空格添加到字符串得中断字符

GetTextCharacterExtra

对字符间空格数量获取当前设置

SetTextCharacterExtra

设置字符间空格数量

字体函数

GetFontData

从比例字体文件获取字体度量信息。

获取得信息通过指定字体文件与返回信息长度得偏移量标识

GetKerningPairs

获取指定设备上下文中当前选取得字体字符实对

GetOutlineTextMetrics

获取用于TrueType字体得字体度量信息

GetGlyphOutline

获取用于当前字体中外线字符串得外线曲线或位图

GetCharABCWidths

从当前字体获取给定范围相继字符以逻辑单位计数得宽度

GetCharWidth

从当前字体获取给定范围相继字符得分数宽度

GetOutputCharWidth

从使用输出设备上下文得当前字体获取相继字符组中各个字符得宽度

SetMapperFlags

改变字体映射表在从逻辑字体到物理字符映射时使用得算法

GetAspectRatioFilter

获取当前长宽比过滤器得设置

打印机跳离函数

QueryAbort

对打印应用调用AbortPro回滚函数,询问打印就是否应终止

Escape

允许应用访问不能通过GDI直接使用得特殊设备得功能。

同时允许访问Windows跳离函数。

应用调用得Escape调用经翻译传送到设备驱动程序

DrawEscape

访问通过图形设备接口(GDI)不能直接使用得视频显示器得绘图功能

StartDoc

通告设备驱动程序开始一项新打印作业

StartPage

通告设备驱动程序开始新页

EndPage

通告设备驱动程序页结束

SetAbortProc

如果打印作业必须终止,设置Windows调用得由程序员提供得回滚函数

AbortDoc

终止当前打印任务,擦除自上次调用StartDoc成员函数以来应用写入设备得任何内容

EndDoc

结束由StartDoc成员函数启动得打印作业

滚动函数

ScrollDC

水平与垂直滚动位矩形

元文件函数

PlayMetaFile

在给定设备上播放指定元文件类型。

增强版本得PlayMetaFile显示以增强格式元文件保存得图片。

元文件可以播放任意次数

AddMeta

从缓冲区把注释拷贝到指定增强格式元文件

路径函数

AbortPath

关闭并拒绝设备上下文中任何路径

BeginPath

打开设备上下文中一个路径括号

CloseFigure

关闭路径中一个打开得图表

EndPath

关闭一个路径括号,并把括号定义得路径选择到设备上下文

FillPath

关闭当前路径中任何打开得图表,并用当前画刷与多边形填充模式填充路径内部

FlattenPath

变形选取到当前设备上下文路径中得任何曲线,把曲线变成一系列直线

GetMiterLimit

返回用于设备上下文得限制

GetPath

获取定义直线端点与从选择到设备上下文路径中找到得曲线控制点得坐标

SelectClipPath

对设备上下文选择当前路径作为剪切区域,通过使用指定模式合并新区域与任何现有剪切区域

SetMiterLimit

设备用于设备上下文得连接长度限制

StrokeAndFillPath

关闭路径中任何打开得图表,使用当前笔点路径外线,使用当前画刷填充它内部

StrokePath

使用当前笔描绘指定路径

WidenPath

如果路径使用过了当前选取到设备上下文中得笔点,重新定义当前路径为要画得区域

 

      * CClientDC子类 

      1、CClientDC类只能在客户区绘图;

      2、所谓客户区指窗口区域中去掉边框、标题栏、菜单栏、工具栏、状态栏等之外得部分,它就是用户可以操作得区域;

      3、在使用CClientDC进行绘图时,一般要调用GetClientRect()函数来获取客户区域得大小;

      4、CClientDC类在构造函数中调用WindowsAPI函数GetDC(),在析构时响应ReleaseDC();

      5、CClientDC类得窗口句柄保存在成员变量m_hWnd,为构造CClientDC,需将CWnd作为参数传递给构造函数。

       * CWindowDC子类 

      1、CWindowDC对象在构造时调用WindowsAPI函数GetWindowDC,在析构时调用相应得API函数ReleaseDC,这意味着CWindowDC对象可访问CWnd所指向得为整个全屏幕区域;

      2、CWindowDC允许在显示器得任意位置绘图。

坐标原点在整个窗口得左上角。

      3、在使用CWindowDC进行绘图时,一般要调用GetWindowRect函数来获取整个应用程序窗口区域得大小;

      4、CWindowDC类得窗口句柄保存在成员变量m_hWnd,为构造CClientDC,需将CWnd作为参数传递给构造函数。

       * CPaintDC子类 

      1、通常CPaintDC用来响应WM_PAINT消息。

一般应用在OnPaint函数、 

      2、CClientDC也就是从CDC派生出来得、构造时自动调用GetDC函数,析构时自动调用ReleaseDC函数、一般应用于客户区窗口得绘制、

      3、CPaintDC只能在WM_PAINT消息中使用,用于有重画消息发出时才使用得内存设备环境,而CClientDC与客户区相关,有重画消息发出时才使用得内存设备环境,可在任何地方使用、

      4、在处理窗口重画时,必须使用CPaintDC,否则WM_PAINT消息无法从消息队列中清除,将引起不断得窗口重画。

    * CMetaFileDC子类 

      1、在应用程序中,有一些图像就是需要经常重复显示得、这样得图形最好事先绘制好形成一个文件,并存储在内存中,当用到它时直接打开就可以了,这种图形文件叫做图元文件; 

      2、制作图元文件需要一个特殊得设备描述环境CMetaFileDC类、它也就是由CDC类继承来得,因此它包含了CDC类得所有绘图方法。

      3、一般先在视图类得OnCreate()函数中创建图元文件、具体做法为:

先定义一个CMetaFileDC类得对象,然后用该对象得Create()函数创建它,该函数得原型为:

BOOLCreate(LPCTSTRlpsz);

      4、接下来使用由CDC继承来得绘图方法绘制图元文件,最后使用Close()函数结束绘制并保存该图元文件到类得数据成员中(该数据成员得类型应为HMETAFILE)。

      5、当需要显示该图元文件时,使用CDC类得成员函数PlayMetaFile()。

当不再使用该图元文件时,要用函数DeleteMetaFile()将其删除。

JjbyNue。

HqlnfY8。

5qFnHud。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2