CDC类及其函数

35 篇文章 0 订阅

 

DC,即Device Context,设备上下文,或称设备环境。

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

CDC对象提供处理显示器或打印机等设备上下文的成员函数,以及处理与窗口客户区对应的显示上下文的成员。通过CDC对象的成员函数进行所有的绘图。类对设备上下文操作提供了成员函数,处理绘图工具,安全型图形设备接口(GDI)对象收集,以及处理颜色和调色板。它还为获取和设置绘图属性、映射,处理视点、窗口扩展、转换坐标,处理区域、剪贴、绘制直线及绘制简单椭圆和多边形等形状提供了成员函数。另外还为绘制文本、处理字体,使用打印机跳转,滚动和播放元文件提供成员函数。使用CDC对象时要构造它,然后调用与它平等的、使用设备上下文的Windows函数的成员函数。

 

注意:Windows 95下所有屏幕坐标限制在16位以内。因此向CDC成员函数传递的int必须在-32768至32767之间。为了特定用途,MFC提供了几个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设备上下文的文本度量信息。以下几对函数提供了这项功能:

使用m_hAttribDC

使用m_hDC

GetTextExtent、GetOutputTextExtent、GetTabbedTextExtent、GetOutputTabbedTextExtent、GetTextMetrics、

GetOutputTextMetrics、GetCharWidth、GetOutputCharWidth

有关CDC的更多信息,请参阅联机文档“Visual C++程序员指南”中的“设备上下文”。

#include 请参阅  CPaintDC, CClientDC, CWindowDC, CMetaFileDC

 

初始化CreateDC为指定设备创建设备上下文CreateIC为指定设备创建信息上下文。这提供了一种不创建设备上下文即获取有关设备信息的快速方式

CreateCompatibleDC创建内存设备上下文,与另一个设备上下文匹配。可以用它在内存中准备图像

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单位

DPtoLP设备单位转换为逻辑单位HIMETRICtoDPHIMETRIC单位转换为设备单位

HIMETRICtoLPHIMETRIC单位转换为逻辑单位

LPtoDP逻辑单位转换为设备单位

LPtoHIMETRIC逻辑单位转换为HIMETRIC单位

 

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绘制三维矩形

 

Chord绘制椭圆弧(椭圆和一条线段相交围成的闭合图形)

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

Ellipse绘制椭圆

Pie绘制饼形图

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值