CDCCObject└CDCCDC类定义的是设备上下文对象的类。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设备上下文的文本度量信息。以下几对函数提供了这项功能:使用m_hAttribDC使用m_hDCGetTextExtentGetOutputTextExtentGetTabbedTextExtentGetOutputTabbedTextExtentGetTextMetricsGetOutputTextMetricsGetCharWidthGetOutputCharWidth有关CDC的更多信息,请参阅联机文档“VisualC++程序员指南”中的“设备上下文”。#includeafxwin.h请参阅:CPaintDC,CClientDC,CWindowDC,CMetaFileDCCDC类成员数据成员m_hDCCDC对象使用的输出设备上下文m_hAttribDCCDC对象使用的输出属性上下文构造函数CDC构造一个CDC对象初始化CreateDC为指定设备创建设备上下文CreateIC为指定设备创建信息上下文。这提供了一种不创建设备上下文即获取有关设备信息的快速方式CreateCompatibleDC创建内存设备上下文,与另一个设备上下文匹配。可以用它在内存中准备图像DeleteDC删除CDC对象对应的Windows设备上下文FromHandle给定设备上下文句柄时,返回指向CDC对象的指针。如果CDC对象未附加到句柄,则创建并附加一个临时CDC对象DeleteTempMap由CWinApp空闲时间句柄调用,删除FromHandle创建的临时CDC对象。同时分离设备上下文Attach把Windows设备上下文附加到这个CDC对象Detach从CDC对象分离Windows设备上下文.SetAttribDC设置属性设备上下文m_hAttribDCSetOutputDC设置输出设备上下文m_hDCReleaseAttribDC释放属性设备上下文m_hAttribDCReleaseOutputDC释放输出设备上下文m_hDCGetCurrentBitmap返回指向当前选择的CBitmap对象的指针GetCurrentBrush返回指向当前选择的CBrush对象的指针GetCurrentFont返回指向当前选择的CFont对象的指针GetCurrentPalette返回指向当前选择的CPalette对象的指针GetCurrentPen返回指向当前选择的CPen对象的指针GetWindow返回显示设备上下文对应的窗口设备上下文函数GetSafeHdc返回输出设备上下文m_hDCSaveDC保存设备上下文当前状态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使用当前字体在输出设备上下文上计算字符串的宽度和高度