【CDC类】是MFC(Microsoft Foundation Classes)库中用于图形设备接口(Graphics Device Interface,GDI)操作的重要类,它封装了Windows API中的设备上下文(Device Context, DC)概念,提供了对屏幕和打印机等输出设备进行绘图操作的方法。 在CDC类中,有以下几个重要的数据成员: 1. **m_hdc**:这是一个设备上下文句柄,用于表示与输出设备关联的上下文,如屏幕或打印机。 2. **m_hattribdc**:属性设备上下文句柄,通常用于存储与设备相关的特性,如颜色深度、分辨率等。 接下来,我们将详细探讨CDC类中的主要成员函数及其用途: - **构造函数cdc()**:创建一个CDC对象,但不与任何设备上下文关联。 - **CreateDC()**:为指定设备创建一个设备上下文,如屏幕或打印机。 - **CreateIC()**:创建一个信息上下文,允许获取设备信息而不实际创建设备上下文。 - **CreateCompatibleDC()**:创建一个与给定设备上下文兼容的内存设备上下文,常用于在内存中绘制图像。 - **DeleteDC()**:删除与CDC对象关联的设备上下文。 - **FromHandle()**:根据设备上下文句柄返回一个指向CDC对象的指针,如果未找到,将创建并附加一个新的临时CDC对象。 - **DeleteTempMap()**:在CWinApp的空闲时间调用,用于删除由FromHandle()创建的临时CDC对象,并分离设备上下文。 - **Attach()**:将Windows设备上下文附加到CDC对象,使对象能够操作该设备上下文。 - **Detach()**:从CDC对象中分离设备上下文,将其释放以便其他对象可以使用。 CDC类还提供了许多用于管理设备上下文状态和绘图操作的函数: - **SetAttribDC()**和**ReleaseAttribDC()**:分别用于设置和释放属性设备上下文。 - **SetOutputDC()**和**ReleaseOutputDC()**:分别用于设置和释放输出设备上下文。 - **GetCurrentBitmap(), GetCurrentBrush(), GetCurrentFont(), GetCurrentPalette(), GetCurrentPen()**:获取当前选中的CBitmap、CBrush、CFont、CPalette和CPen对象。 - **GetWindow()**:返回设备上下文对应的窗口句柄。 设备上下文操作函数包括: - **GetSafeHDC()**:安全地获取输出设备上下文句柄。 - **SaveDC()**和**RestoreDC()**:保存和恢复设备上下文的状态。 - **ResetDC()**:更新属性设备上下文的设置。 - **GetDeviceCaps()**:获取设备的特定硬件特性。 - **IsPrinting()**:检查设备上下文是否用于打印任务。 此外,还有颜色和调色板相关的函数: - **SelectObject()**:选择GDI绘图对象,如笔、刷子或字体。 - **SelectStockObject()**:选择Windows提供的预定义绘图对象。 - **GetNearestColor()**:获取与给定逻辑颜色最接近的设备颜色。 - **SelectPalette()**和**RealizePalette()**:选择逻辑调色板并在系统调色板中映射颜色。 - **UpdateColors()**:根据客户区颜色更新设备上下文的调色板映射。 绘图属性函数包括: - **GetBkColor()**和**SetBkColor()**:获取和设置背景颜色。 - **GetBkMode()**和**SetBkMode()**:获取和设置背景模式。 - **GetPolyFillMode()**和**SetPolyFillMode()**:获取和设置多边形填充模式。 - **GetROP2()**和**SetROP2()**:获取和设置绘图模式。 - **GetStretchBltMode()**和**SetStretchBltMode()**:获取和设置位图拉伸模式。 - **GetTextColor()**和**SetTextColor()**:获取和设置文本颜色。 - **GetColorAdjustment()**和**SetColorAdjustment()**:获取和设置颜色调整值。 映射函数用于控制坐标系统的映射: - **GetMapMode()**和**SetMapMode()**:获取和设置当前映射模式。 - **GetViewportOrg()**和**SetViewportOrg()**:获取和设置视区起点。 - **OffsetViewportOrg()**:相对于当前视区起点移动视区起点。 - **GetViewportExt()**和**SetViewportExt()**:获取和设置视区的尺寸。 - **ScaleViewportExt()**:相对于当前值缩放视区尺寸。 - **GetWindowOrg()**和**SetWindowOrg()**:获取和设置窗口起点,以及相关的扩展和偏移函数。 CDC类提供了全面的设备上下文操作,使得开发者可以通过MFC轻松地进行图形绘制和设备交互。这些成员函数涵盖了从创建和管理设备上下文,到选择绘图对象,再到设置绘图属性和处理颜色映射等多个方面,是进行Windows应用程序开发不可或缺的一部分。
- xng1682013-01-08太多了。看着眼睛都花了。
- 粉丝: 14
- 资源: 9
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助