MFC绘图教程.docx
《MFC绘图教程.docx》由会员分享,可在线阅读,更多相关《MFC绘图教程.docx(6页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、MFC绘图教程.txt MFC 编程学习的根本目标 编程学习的根本目标可以进展简洁的基于 MFC 的图形界面编程 的图形界面编程 可以进展简洁的基于理解 Windows 编程的根本概念。 编程的根本概念。 理解 编程的根本概念 鉴于教学时间进度限制, 鉴于教学时间进度限制,更简洁的应用程序开发通过 自学完成。 自学完成。实现根本 MFC 应用程序需要把握如下内容: 应用程序需要把握如下内容: 实现根本 应用程序需要把握如下内容Windows 编程根本概念 编程根本概念 文档/视图构造 文档 视图构造 文档读写 对话框及标准控件的使用 菜单栏的使用 绘图及鼠标消息的处理3/21/2023 2主要
2、内容GDI 与设备环境DC 与设备环境 与设备环境 用 CDC 绘图 绘图 应用举例 绘图工具类3/21/20233图形设备接口 图形设备接口GDI Windows 供给了一个 称为图形设 备接口 供给了一个 称为图形设 备接口 (Graphics Device Interface,GDI)的抽象接口。 的抽象接口。 , 的抽象接口 GDI 作为 作为 Windows 的重要组成局部,负责治理用 的重要组成局部,的重要组成局部 户绘图操作时功能的转换。户绘图操作时功能的转换。 用户通过调用 GDI 函数与设备打交道,GDI 通过 函数与设备打交道, 用户通过调用 不同设备供给的驱动程序将绘图语
3、句转换为对应 的绘图指令,避开了用户对硬件直接进展操作, 的绘图指令,避开了用户对硬件直接进展操作, 从而实现设备无关性显示器或打印机。 从而实现设备无关性显示器或打印机。3/21/20234GDI 的图形输出 的图形输出应用程序可以使用 GDI 创立如以以下图形输出 应用程序可以使用矢量图形:画线和填充图形,包括点、直线、曲线、多矢量图形:画线和填充图形,包括点、直线、曲线、 边形、扇形和矩形等。 边形、扇形和矩形等。 光栅图形: 光栅图形: 通过光栅图形函数对以位图形式存储的数据 进展操作,包括各种位图和图标的输出。 进展操作,包括各种位图和图标的输出。屏幕:对假设干行和列的像素操作 屏幕
4、: 打印机: 打印机:对假设干行和列的点阵输出 直接从内存到显存的复制操作,速度快,内存要求高。 直接从内存到显存的复制操作,速度快, 内存要求高。文本:以图形方式输出文本, 文本:以图形方式输出文本,以规律坐标为单位计算输 出位置, 是以行为单位。 出位置,而 DOS 是以行为单位。用户可以设置文本的各 是以行为单位 种效果,如加粗、斜体、设置颜色等。 种效果,如加粗、斜体、设置颜色等。3/21/20235设备环境应用程序的输出面对设备环境(Device Context,DC),是 应用程序的输出面对设备环境 , , 一个虚拟规律设备,也称设备描述表或设备上下文。 一个虚拟规律设备,也称设备
5、描述表或设备上下文。设备 环境 DC 是由 是由 GDI 创立,用来代表设备连接的数据构造。创立,用来代表设备连接的数据构造。 环境 DC 的主要功能允许应用程序使用一个输出设备。 允许应用程序使用一个输出设备。 供给应用程序、设备驱动和输出设备之间的连接。 供给应用程序、设备驱动和输出设备之间的连接。 保存当前信息,例如当前的画笔、画刷、 保存当前信息,例如当前的画笔、画刷、字体和位图等图形对象及 其属性,以及颜色和背景等影响图形输出的绘图模式。 其属性,以及颜色和背景等影响图形输出的绘图模式。 保存窗口剪切区域(Clipping Region),限制程序输出到输出设备中 保存窗口剪切区域
6、, 窗口掩盖的区域。 窗口掩盖的区域。3/21/20236设备坐标系统设备坐标系统x 轴自左至右,y 轴从上到下,坐标原点在屏 轴自左至右,轴从上到下 轴从上到下, 轴自左至右 幕左上角O 0,0 X Y 3/21/20237主要内容GDI 与设备环境DC 与设备环境 与设备环境 用 CDC 绘图 绘图 应用举例 绘图工具类3/21/20238设备环境类 CDC 设备环境类MFC 封装了 ,供给 封装了 DC,供给 CDC 类及它的子类以 封装了 访问GDI。访问 。CDC类派生自 类派生自 CObject 类,其子类包括 类派生自 类CClientDC CObject CMetaFileDC
7、 CPaintDC CWindowDC 3/21/20239设备环境类的根本功能3/21/202310CDC 类常用绘图函数 类常用绘图函数Arc:绘制一段弧 : Chord:绘制弦形 : Ellipse:绘制椭圆或圆 : MoveTo:将当前位置移动到指定位置 : LineTo:从当前位置到指定位置画一条直线 : Polyline:画连接指定点的折线段 : PolyBezler:依据两个端点和两个把握点画贝塞尔曲线 : Pie:画冰块 : Polygon:依据两个或两个以上的顶点绘制一个多边形 : Rectangle:依据指定的左上角和右下角坐标绘制一个矩形 : RoundRect:画圆角矩
8、形 : SetPixel:画一个点 :3/21/202311绘图颜色DWORD 类型的 类型的 COLORREF 数据用于存放颜色值 类型的 数据用于存放颜色值“0x00bbggrr” ”低位字节存放红色强度值 第 2 个字节存放绿色强度值 第 3 个字节存放蓝色强度值 个字节存放蓝色强度值 高位字节存放 0 高位字节存放可用 RGB 宏设置颜色值,将红、绿、蓝重量值转宏设置颜色值,将红、 可用 宏设置颜色值 换为 COLORREF 类型的颜色数据 换为 类型的颜色数据COLORREF RGB(BYTE byRed, / red component of color BYTE byGreen,
9、 / green component of color BYTE byBlue / blue component of color );3/21/2023 12常用颜色比照表例:COLLORREF red = RGB(255,0,0); 3/21/202313中猎取 DC 在 MFC 中猎取 中猎取在如OnDraw 等函数中传递一个指向 等函数中传递一个指向CDC 对象的 在如 等函数中传递一个指向 指针如 OnDraw(CDC* pDC);使用构造函数构建对象一般不构造 CDC 对象 对象 一般不构造 类的 OnPaint 函数中,定义 函数中, 在 CWnd类的 类的 函数中 定义 CPa
10、intDC 对象 对象CPaintDC dc(this);类的其它函数中,在CWnd 类的其它函数中,定义 类的其它函数中 定义CClientDC 和 和CWindowDC 的对象 的对象CClientDC dc(this); CWindowDC dc(this); 3/21/202314CClientDC、CPaintDC 和 CWindowDC 的区分 、 和 的区分当窗口的某个区域需要重绘时激发窗口重绘消息 WM_PAINT,相应消息 , 当窗口的某个区域需要重绘时激发窗口重绘消息 处理函数 CWnd:OnPaint 将被调用。CPaintDC 一般只用于 将被调用。一般只用于 OnPa
11、int 函数 处理函数 将被调用 一般只用于 函数 在处理完窗口重绘后, 对象的析构函数把 WM_PAINT 消 中,在处理完窗口重绘后, CPaintDC 对象的析构函数把 对象的析构函数把 消 息从消息队列中去除,避开不断地重绘操作。坐标原点(0,0) 是客户区的 息从消息队列中去除,避开不断地重绘操作。坐标原点 是客户区的 左上角。左上角。 CClientDC 用于特定窗口客户区窗口中除边框、标题栏、菜单栏、状 用于特定窗口客户区 用于特定窗口客户区 窗口中除边框、标题栏、菜单栏、 态栏外的中间局部的输出,其构造函数中包含了 GetDC,析构函数中包 态栏外的中间局部的输出,其构造函数中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MFC 绘图 教程
限制150内