多媒体编程基础课程综合作业说明书-MFC图形图像处理及绘图软件设计
- 格式:doc
- 大小:581.50 KB
- 文档页数:56
多媒体编程基础课程综合作业说明书题目多媒体处理综合应用设计班级学生姓名学号20 年月日1一、程序功能与设计思路设计目标与具有的功能:必须含有文字处理、绘图、图像、音频视频四部分内容各3种以上功能,界面及应用方法自己根据软件的特色综合考虑,每位同学必须自己设计一个动画标志,放在【帮助】对话框中,或者窗口界面上设计思路:1)图形处理:➢可以选择直线,矩形,椭圆,涂鸦进行绘画➢可以选择线的形状:实线,虚线,点线➢可以改变线条的颜色➢可以改变线条的宽度➢可以进行多边形填充颜色并可以改变颜色2)图片处理:➢可以打开BMP格式的图片➢可以进行锐化,浮雕,反色等图片处理效果➢可以显示鼠标在图片上坐标处的颜色值和颜色3)文字处理:➢实现至少少三种文字特效,比如:文字渐变,旋转体,3D,文字倾斜,下划线,空心字等4)音乐播放器:2➢可以打开mp3,wma,wvi格式的歌曲➢可以控制音乐的播放、暂停、停止➢可以指定播放当前音乐的上一个或下一个音乐➢在列表中随意选择要播放的音乐➢在播放时,可以获取并显示当前播放音乐的信息➢可以调节音乐的音量5)视频播放器:➢可以打开MP3,WMA,WMV,AVI,RM,RMVB,FLV,MP4等格式➢在列表中随意选择要播放的媒体文件➢控制媒体文件的播放、暂停、停止、快进、快退➢指定播放当前文件的上一个或下一个媒体文件➢在播放时,可以获取并显示当前播放媒体的文件信息➢播放模式可以进行进行选择➢可以对播放列表或列表中的选项进行删除操作二、相关原理知识介绍(1)图形处理:画笔和画刷是绘图中最基本的元素31.画笔(Pen):用于在设备环境中绘制直线,曲线和多边形边框。
创建画笔:(1)CPen();(2)CPen(int nPenStyle, int nWidth, COLORREF crColor);nPenStyle:画笔的样式PS_SOLID 创建一个实线画笔,PS_DASH 创建一个虚线画笔,PS_DOT 创建一个点线画笔nWidth:画笔的宽度crColor:画笔的颜色(颜色用RGB值来描述)2.画刷(CBrush):常用于填充个区域诸如多边形,椭圆和路径等图形内部区域创建画刷:(1)CreateSolidBrush 用指定的颜色初始化画刷(2)CreateHatchBrush 用指定的阴影线初始化画刷。
多媒体编程基础课程设计一、教学目标本课程旨在通过多媒体编程的教学,让学生掌握多媒体编程的基本概念、技术和方法,培养学生运用多媒体编程解决实际问题的能力。
知识目标:使学生了解多媒体编程的基本概念,理解多媒体编程的基本技术和方法,掌握多媒体编程的基本语言和工具。
技能目标:培养学生运用多媒体编程技术进行创新设计的能力,提高学生解决实际问题的能力,使学生能够独立完成多媒体编程项目。
情感态度价值观目标:培养学生对新技术的敏感性和好奇心,提高学生对科学探究的兴趣,培养学生勇于创新、积极进取的精神风貌。
二、教学内容本课程的教学内容主要包括多媒体编程的基本概念、基本技术和方法,以及相关的编程语言和工具。
具体包括:多媒体编程的基本概念,多媒体编程的基本技术和方法,多媒体编程的基本语言和工具,多媒体编程项目的设计和实现。
三、教学方法本课程的教学方法主要包括讲授法、案例分析法、实验法等。
通过讲授法,使学生了解和掌握多媒体编程的基本概念、技术和方法;通过案例分析法,培养学生运用多媒体编程技术解决实际问题的能力;通过实验法,使学生掌握多媒体编程的基本语言和工具,提高学生的实际操作能力。
四、教学资源本课程的教学资源主要包括教材、参考书、多媒体资料、实验设备等。
教材和参考书将作为学生学习的主要资源,多媒体资料将用于辅助教学,实验设备将用于学生的实验操作。
五、教学评估本课程的评估方式包括平时表现、作业、考试等多种形式,以全面、客观、公正地评价学生的学习成果。
平时表现将根据学生在课堂上的参与度、提问回答、小组讨论等表现进行评估;作业将根据学生的完成质量、创新性和正确性进行评估;考试将涵盖本课程的所有知识点,以检验学生对多媒体编程知识的掌握程度。
六、教学安排本课程的教学安排将根据课程内容和学生的实际情况进行调整,确保在有限的时间内完成教学任务。
教学进度将按照教材的章节进行,每个章节安排适当的教学时间;教学时间将根据学生的作息时间进行调整,以保证学生有充足的精力参与学习;教学地点将选择教室或实验室等合适的地方进行。
广西工学院计算机工程系《Windows程序设计》课程设计说明书课题名称:学生姓名:学号:班级:指导教师:完成日期:年月日目录1.问题陈述及其软件功能概述.............................................P 2.总体设计………………………………………………….P 3.详细设计和部分程序代码………………………...……..P 4.运行结果及分析………………………………………….P 5.总结……………………………………………………….P1.问题陈述及其软件功能概述1.1问题陈述本次课程设计,我所选择的题目是<多功能绘图软件>。
面临以下主要几个问题:1)如何用鼠标进行画图?2)如何绘制一下几种图形,线,带箭头的线,任意线,圆,椭圆,矩形?3)如何在内存中保存以上几种图形?4)如何将图形保存到文件中去?5)如何从文件中读取以前画过的图形?面临以下几个次要的问题:1)如何选择绘画的类型?2)如何改变画笔的颜色和宽度和形状?3)如何实现图形的橡皮条功能?4)如何实现图形中的透明画刷功能?5)如何实现图形的重绘?6)如何实现画图工具栏?7)如何实现状态栏鼠标坐标显示和当前时间显示?8)如何打开txt文档以及如何改变显示文本的字体?9)如何打开bmp文件?10) 如何打开wav文件?1.2软件功能概述软件主要有以下几个主要功能1)用鼠标可以绘制图形,包括一下几种:直线,带箭头的线,任意线,圆形,椭圆,矩形。
2)可以对画笔进行设置:画笔的颜色,画笔的线宽,画笔的形状。
3)可以保存所有的图形到内存中,所有图形绘制后,拉动窗口发生重绘不改变。
4)可以将所有绘制的图形保存到文件中,并且可以读取。
5)可以“新建”空白绘图文档。
6)可以查看最近打开的文档。
7)可以打印用户绘制好后的图形,打印预览你绘制的图形。
8)可以完成一部分的“撤消”功能,(注:任意曲线的图形绘制撤消不能实现)9)可以完成图形“清空”功能。
mfc 画图课程设计一、教学目标本课程旨在通过MFC画图的学习,让学生掌握以下知识目标:1. 理解MFC的基本概念和原理;2. 掌握MFC的基本绘图方法;3. 了解MFC绘图的应用场景。
技能目标:1. 能够运用MFC进行简单的图形绘制;2. 能够通过MFC实现图形的基本操作;3. 能够运用MFC解决绘图相关问题。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣和热情;2. 培养学生独立思考和解决问题的能力;3. 培养学生团队协作和交流的能力。
二、教学内容本课程的教学内容主要包括以下几个部分:1. MFC的基本概念和原理;2. MFC 的基本绘图方法;3. MFC绘图的应用场景。
详细的教学大纲如下:第1周:MFC的基本概念和原理1.1 MFC的定义和发展历程1.2 MFC的基本组成和架构1.3 MFC的优点和缺点第2周:MFC的基本绘图方法2.1 MFC绘图环境的基本操作2.2 MFC绘图工具的使用2.3 MFC绘图方法的具体实现第3周:MFC绘图的应用场景3.1 MFC绘图在实际项目中的应用3.2 MFC绘图在解决实际问题中的优势3.3 MFC绘图在其他领域的拓展三、教学方法为了提高教学效果,本课程将采用以下教学方法:1.讲授法:通过讲解MFC的基本概念、原理和绘图方法,让学生掌握相关知识。
2.案例分析法:通过分析实际项目中的应用案例,让学生了解MFC绘图在实际场景中的应用。
3.实验法:让学生动手实践,亲自编写代码,绘制图形,提高学生的实际操作能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:《MFC画图教程》2.参考书:《MFC编程入门》、《MFC实例解析》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、编程环境(如Visual Studio)五、教学评估本课程的评估方式将包括以下几个方面:1.平时表现:包括课堂参与度、提问回答、小组讨论等,占总评的30%。
第6章图形图像和多媒体应用程序设计方法本章在分析“指针式时钟”和“VCD播放器”程序设计实例的基础上,主要介绍图形操作的基础知识和VB中开发多媒体应用程序的两种主要方式。
主要包括坐标系统、简单几何绘图、相关控件的使用方法等。
通过本章学习,你应该能够达到如下学习目标:1.掌握图形图像的基本处理方法。
2.理解VB坐标系统的原理。
3.掌握图形控件和多媒体控件的使用和与绘图有关的常用属性和方法。
4.理解“指针式时钟”程序的设计方法,能够读懂并完善这类程序的部分语句。
5.了解“VCD播放器”程序设计的方法,能够读懂并完善这类程序的部分语句。
6.了解播放多媒体信息的基本方法一、主要知识点1.VB坐标系统在VB中,每个对象都定位在存放它的容器内,对象的定位都要使用容器的坐标系。
例如,窗体处于屏幕内,屏幕就是窗体的容器(如教材图6.5所示),而在窗体内绘制对象时,窗体就是容器(如教材图6.6所示)。
如果在图片框内绘制图形,则该图片框就是容器(如教材图6.7所示)。
容器内的对象只能在容器内变动,当移动容器时,容器内的对象也随着容器一起移动,而且与容器的相对位置保持不变。
(1)窗体的缺省坐标系统构成一个坐标系需要三个要素:坐标原点、坐标轴度量单位、坐标轴方向。
坐标轴的度量单位由对象的ScaleMode属性来决定(有8种形式),缺省为Twip(缇)。
默认的坐标原点(0,0)为对象的左上角,横向向右为X轴的正向,纵向向下为Y轴的正向。
窗体的缺省坐标系统如图1所示。
注意:窗体的Height属性值包括了垂直边框宽度(如教材图6.5所示)。
ScaleHeight属性决定。
(2)自定义坐标系统图1 窗体的缺省坐标系统Y轴轴VB中坐标系的定义有如下两种方法:①通过ScaleTop、ScaleLeft、ScaleWidth、ScaleHeight四项属性来实现ScaleTop、ScaleLeft的值用于指定对象左上角坐标,所有对象的ScaleLeft、ScaleTop属性的缺省值为0,坐标原点在对象的左上角,当改变ScaleLeft、ScaleTop的值后,坐标系的X 轴或Y轴按此值平移形成新的坐标原点。
MFC 课程设计一、课程目标知识目标:1. 学生能理解MFC(Microsoft Foundation Classes)的基本概念,掌握其框架结构和编程原理。
2. 学生能掌握MFC中的常用类及其功能,如CWnd、CView、CFrameWnd 等。
3. 学生能了解MFC的消息映射机制,学会使用MFC处理Windows消息。
技能目标:1. 学生能运用MFC创建Windows应用程序,熟练使用MFC控件进行界面设计。
2. 学生能通过MFC实现应用程序的基本功能,如文件操作、绘图等。
3. 学生能运用MFC进行事件处理,编写响应鼠标、键盘等操作的程序。
情感态度价值观目标:1. 培养学生对MFC编程的兴趣和热情,激发他们探索Windows编程的积极性。
2. 培养学生良好的编程习惯,强调代码规范和程序调试的重要性。
3. 培养学生的团队协作意识,让他们在编程实践中学会相互交流、分工合作。
本课程针对高年级计算机专业学生,结合课程性质、学生特点和教学要求,将课程目标分解为具体的学习成果。
通过本课程的学习,学生将掌握MFC编程的基本知识和技能,能够独立开发Windows应用程序,并在实践中培养良好的编程素养和团队协作能力。
二、教学内容1. MFC概述:介绍MFC的基本概念、发展历程和应用领域,让学生了解MFC在Windows编程中的重要性。
相关教材章节:第一章 MFC概述2. MFC框架结构:讲解MFC的类层次结构,重点介绍CObject、CCmdTarget、CWnd等核心类及其关系。
相关教材章节:第二章 MFC框架结构3. MFC编程基础:学习MFC应用程序的创建、运行流程,掌握MFC的消息映射机制。
相关教材章节:第三章 MFC编程基础4. MFC常用类及其功能:详细介绍CFrameWnd、CView、CDialog等常用类,并通过实例演示其用法。
相关教材章节:第四章 MFC常用类及其功能5. MFC事件处理:学习如何使用MFC处理鼠标、键盘等Windows消息,编写事件响应程序。
MFC画图程序步骤MFC(Microsoft Foundation Class)是一种用于开辟Windows应用程序的C++类库。
在MFC中,我们可以使用GDI(Graphics Device Interface)来创建和操作图形。
下面是使用MFC创建一个简单的画图程序的步骤。
步骤1:创建一个新的MFC项目首先,打开Visual Studio并选择创建一个新的项目。
在项目类型中,选择Visual C++ -> MFC,然后选择MFC应用程序类型。
输入项目名称并选择保存的位置。
在应用程序类型中,选择“单文档”或者“多文档”视图,具体根据你的需求而定。
点击“确定”按钮创建项目。
步骤2:设计用户界面在MFC应用程序中,用户界面是通过对话框资源来设计的。
在资源视图中,双击IDD_DIALOG(或者其他对话框资源)以打开对话框编辑器。
在对话框编辑器中,你可以添加按钮、文本框、菜单等控件来设计你的用户界面。
在画图程序中,你可以添加一个画布控件来显示绘制的图形。
步骤3:添加绘图功能在MFC中,你可以使用GDI来进行绘图操作。
打开你的对话框类的头文件(例如,CMyDialog.h),添加以下头文件引用:#include <afxwin.h>#include <afxext.h>#include <afxdisp.h>在对话框类的源文件(例如,CMyDialog.cpp)中,添加以下代码来处理绘图操作:```void CMyDialog::OnPaint(){CPaintDC dc(this); // 用于绘制的设备上下文// 在这里进行绘图操作dc.Rectangle(100, 100, 200, 200); // 绘制一个矩形dc.Ellipse(300, 100, 400, 200); // 绘制一个椭圆}```步骤4:处理绘图事件在对话框类的消息映射中添加对绘图事件的处理。
mfc画图板课程设计一、课程目标知识目标:1. 学生能够理解MFC画图板的基本原理,掌握画图板工具的使用方法;2. 学生能够运用MFC画图板的基本功能进行图形绘制,如线条、圆形、矩形等;3. 学生能够了解颜色、线条粗细等属性设置,并能运用到实际绘图过程中;4. 学生掌握MFC画图板中的图层概念,能进行简单的图层操作。
技能目标:1. 学生能够独立操作MFC画图板,完成基本的图形绘制;2. 学生能够通过MFC画图板进行创意设计,提高绘画表达能力;3. 学生能够运用MFC画图板解决实际问题,如制作简单的海报、插图等;4. 学生能够通过课程实践,提高观察力、想象力和创造力。
情感态度价值观目标:1. 学生对计算机绘图产生兴趣,增强学习计算机技术的自信心;2. 学生培养良好的审美观念,关注生活中的美;3. 学生在团队协作中,学会互相帮助、共同进步,培养集体荣誉感;4. 学生通过计算机绘图,培养环保意识、社会责任感,将所学知识运用到实际生活中。
课程性质:本课程为信息技术学科,以实践操作为主,注重培养学生的动手能力和创新能力。
学生特点:六年级学生具备一定的计算机操作基础,好奇心强,喜欢尝试新事物。
教学要求:结合学生特点,注重启发式教学,引导学生主动探究,提高实践操作能力。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. MFC画图板概述:介绍MFC画图板的基本功能、界面布局及操作方法,使学生对其有整体认识。
- 教材章节:第三章 计算机绘图基础2. 基本绘图工具的使用:讲解并实践线条、圆形、矩形等基本图形的绘制方法,以及颜色、线条粗细设置。
- 教材章节:第三章 计算机绘图基础3. 图层概念与操作:介绍图层的作用、创建、删除、移动等基本操作,提高学生的绘图技能。
- 教材章节:第四章 图层与对象4. 创意绘图实践:引导学生运用所学知识进行创意设计,如制作海报、插图等,提高学生的绘画表达能力。
- 教材章节:第五章 创意绘图实践5. 计算机绘图与生活应用:结合实际案例,让学生了解计算机绘图在生活中的应用,培养环保意识和社会责任感。
mfc绘图课程设计一、课程目标知识目标:1. 学生能理解MFC(Microsoft Foundation Class)的基本概念及其在绘图中的应用;2. 学生能掌握MFC绘图程序的基本框架和常用绘图工具的使用;3. 学生能了解并运用MFC中的颜色、画笔、画刷等绘图属性。
技能目标:1. 学生能运用MFC编写简单的绘图程序;2. 学生能通过MFC实现基本的图形绘制,如线条、矩形、椭圆等;3. 学生能通过MFC实现图形的填充、旋转等变换。
情感态度价值观目标:1. 培养学生对计算机绘图产生兴趣,激发其主动探索精神;2. 培养学生在团队合作中相互学习、交流,形成良好的合作氛围;3. 培养学生具备创新思维,敢于尝试新方法,提高解决问题的能力。
课程性质:本课程为信息技术学科选修课程,适用于对计算机绘图有兴趣的学生。
学生特点:学生具备一定的编程基础,对MFC有一定了解,具有较强的学习能力和探索精神。
教学要求:课程要求教师引导学生主动探索,通过实践操作,掌握MFC绘图的相关知识和技能。
在教学过程中,注重培养学生的动手能力和创新能力。
教学评估以学生的实际操作和绘图作品为依据。
二、教学内容1. MFC绘图基础理论:- MFC概述及其在绘图中的应用;- 常用绘图工具和类的介绍。
2. MFC绘图程序框架:- 创建MFC绘图程序的基本步骤;- 常用绘图函数和功能介绍。
3. 图形绘制与变换:- 线条、矩形、椭圆等基本图形的绘制;- 图形的填充、旋转等变换操作。
4. MFC绘图进阶应用:- 颜色、画笔、画刷等绘图属性的应用;- 综合实例分析,实现复杂图形的绘制。
教学大纲安排:第一课时:MFC绘图基础理论,介绍MFC及其在绘图中的应用,学习常用绘图工具和类。
第二课时:MFC绘图程序框架,学习创建MFC绘图程序的基本步骤和常用绘图函数。
第三课时:图形绘制与变换,实践绘制基本图形和实现图形的填充、旋转等变换。
第四课时:MFC绘图进阶应用,学习颜色、画笔、画刷等绘图属性的应用,分析综合实例。
多媒体编程基础课程综合作业说明书-MFC图形图像处理及绘图软件设计成绩南京工程学院题目多媒体综合设计班级学生姓名学号2011 年 10 月 28 日,1,一、程序功能与设计思路整体设计目标:含有文字处理、绘图、图像、音频视频四部分内容各3种以上功能,自己设计一个标志,放在窗口界面上,带动画效果 1、主界面1.1 主界面实现功能说明如下:, 菜单项包括文字处理、绘图、图像、音频视频,点击进入各个功能界面, 动画显示个人信息1.2 界面效果显示:,2,1.3 主界面设计思路:首先创建一个基于对话框的对话框的MFC应用程序,然后在资源里添加五个菜单栏和四个对话框并将其对应连接起来,在主对话框菜单栏中添加四个菜单选项与四个子对话框链接,以实现点击菜单项跳出对应的对话框。
然后在主对话框中添加一个shockwaveflash控件以实现在主界面播放设计好的flash动画。
其功能结构如下:主界面图像处理音频视频播放标志文字处理绘图工具,3,2、文字处理2.1 文字实现功能说明如下:, 菜单项包括文字镂空、文字旋转、颜色渐变、倾斜文字,点击菜单项将显示各个功能。
, 文字镂空:在对话框中显示一串字符,字符中间镂空显示。
, 文字旋转:在对话框中显示一串字符,字符循环旋转,并实现空间。
视觉效果,且当前字符显示红色,其余字符显示蓝色。
, 颜色渐变:在对话框中显示一串字符,并整体实现颜色渐变。
, 倾斜文字:在对话框中旋转循环显示字体,每个字符串角度相差15度,围成一个圈。
2.2 界面效果显示:,4,2.3 文字处理功能结构图:文字处理镂空文字文字旋转颜色渐变倾斜文字3、绘图工具3.1 绘图工具实现功能如下:, 画点, 画线, 画椭圆, 画矩形,矩形内部用渐变颜色填充, 涂鸦, 设置画图的线型、线宽, 设置画图线条的颜色,5,3.2 功能界面效果显示,6,3.3 绘图工具功能结构图: 点线绘椭圆图矩形绘图涂鸦工具设置线型设置设置线宽设置颜色4、图像处理4.1 图像处理实现功能如下: , 从本地磁盘打开.bmp文件, 图片去色, 浮雕效果, 颜色拾取, 轮廓识别, 对称变换, 颜色取反,7,4.2 功能界面效果显示,8,,9,4.3图像处理功能结构图:图像处理图像内容浏览颜色浏览特效变换打开内容内容内容内容内容5、音频视频播放5.1音频视频功能实现:, 从本地磁盘添加音频视频文件, 双击播放音频视频文件, 点击播放按钮播放文件, 点击上一个、下一个选择当前文件的上一个、下一个文件5.2 功能界面显示,10,5.3 音频视频播放功能结构图:音频视频播放控制添加文件上一个下一个播放,11,二、相关原理知识介绍1、文字处理1.1文字处理的基本知识Windows使用了两种主要字体:一种是等宽字体,一种是可变宽字体。
同时Windows又定义了三种不同类型的字体:光栅字体(设备相关的点阵图字体)、矢量字体(设备无关的由一系列线段构成的字体)、TrueType字体(设备无关的用线条和样条曲线来定义轮廓的字体),其中TrueType字体可以在进行任何限度的缩放后,而仍然保持良好的字体质量。
此外,还有OpenType字体,它也是设备无关的,可以用来定义手写字体。
无论哪种字体,在Windows系统中都是使用TEXTMERIC和LOGFONT两个结构来进行描述的。
在应用中通过这两个结构来获取字体信息,定义显示文字所需要的字体。
1.2文本输出函数函数名功能用当前字体在指定位置处写一个字符串 TextOut用当前字体在矩形区域内写一个字符串 ExTextOut在指定位置写一个字符串 TabbedTextOut在指定矩形中绘制格式化的文本 DrawText1.3 文字处理的基本步骤1)获取设备环境(CDC* pDC)2)设置系统字体----默认字体----得到当前的字体(部分)信息,以该信息输出-----创建自定义字体,选入设备环境3)输出文本 (文本输出函数)1.4、设置系统字体的步骤1)创建字体对象:CFont font; // font为字体对象2)创建字体CreateFont()CreatePointFontCreateFontIndirect()CreateFontFontIndirect()3) 调用成员函数SelectObject将字体选入设备环境: SelectObject(&font);1.5、控制文本的背景色在设备描述中有两项可以影响背景,一个是背景色,另一个是背景模式。
背景模式可以为透明的(Transparent)或不透明的(Opaque)。
缺省为不透明的。
背景模式可用函数SetBkMode来设置,它设置当前的背景模式并返回原来的背景模式。
函数原型为:int SetBkMode(int nBkMode);参数nBkMode指定背景模式,其值可以是OPAQUE或者TRANSPARENT;如果值为OPAQUE,则显示时背景都改为当前背景颜色。
如果值为TRANSPARENT,则不改变背景颜色,此时,任何SetBkColor函数调用都无效,12,2、简单绘图工具2.1 绘图的基本方法实现简单图形的绘制,绘图功能中,有绘制直线、矩形、椭圆、涂鸦等。
用到的方法如下:CPoint MoveTo(int x,int y); //直线起点CPoint LineTo(int x,int y); //直线终点BOOL Rectangle(int x1,int y1,int x2,int y2); //绘制矩形BOOL Ellipse(int x1,int y1,int x2,int y2); //绘制椭圆涂鸦部分,以鼠标移动的轨迹画线。
同样要用到MouseMove()函数。
使起点为鼠标前一个位置,终点为鼠标当前位置,以画直线的方式完成。
对于线型、线宽、颜色的设置,通过使用颜色通用对话框完成。
2.2 绘图时需要用到的设备环境类介绍设备环境类CDC提供了绘制和打印的全部函数。
为了能让用户使用一些特殊的设备环境,CDC还派生了CPaintDC、CClientDC、CWindowDC和CMetaFileDC类。
(1)CPaintDC比较特殊,它的构造函数和析构函数都是针对OnPaint进行的,但用户一旦获得相关的CDC指针,就可以将它当成任何设备环境(包括屏幕、打印机)指针来使用。
CPaintDC类的构造函数会自动调用BeginPaint,而它的析构函数则会自动调用EndPaint。
(2)CClientDC只能在窗口的客户区(不包括边框、标题栏、菜单栏以及状态栏)中进行绘图,点(0,0)通常指的是客户区的左上角。
而CWindowDC允许在窗口的任意位置中进行绘图,点(0,0)指整个窗口的左上角。
CWindowDC和CClientDC构造函数分别调用GetWindowDC和GetDC,但它们的析构函数都是调用ReleaseDC函数2.3 CRect 类常用的成员函数成员函数功能说明int Width( ) const; 返回矩形的宽度返回矩形的高度 int Height( ) const;返回矩形的大小,CSize中的cx和cy成员分别表示矩CSize Size( ) const; 形的宽度和高度返回矩形左下角的点坐标 CPoint& TopLeft( );返回矩形右下角的点坐标 CPoint& BottomRight( );返回CRect的中点坐标 CPoint CenterPoint( ) const;如果一个矩形的宽度或高度是0或负值,则称这个矩形BOOL IsRectEmpty() const; 为空,返回TRUE如果一个矩形的上、左、下和右边的值都等于0,则返BOOL IsRectNull() const; 回TRUE如果点point位于矩形中(包括点在矩形的边上),则返BOOL PtInRect( POINT point )回TRUE const;将矩形的各边设为指定的值,左上角点为(x1, y1),右下void SetRect( int x1, int y1, int角点为(x2, y2) x2, int y2 );将矩形的所有坐标设置为零 void SetRectEmpty();使矩形符合规范 void NormalizeRect( );void OffsetRect( int x, int y ); 移动矩形,水平和垂直移动量分别由x、y或point、sizevoid OffsetRect( POINT point ); 的两个成员来指定 void OffsetRect( SIZE size );,13,2.4、画笔和画刷画笔是Windows应用程序中用来绘制各种直线和曲线的一种图形工具,它可分为修饰画笔和几何画笔两种类型。
在这两种类型中,几何画笔的定义最复杂,它不但有修饰画笔的属性,而且还跟画刷的样式、阴影线类型有关,通常用在对绘图有较高要求的场合。
而修饰画笔只有简单的几种属性,通常用在简单的直线和曲线等场合。
一个修饰画笔通常具有宽度、风格和颜色三种属性。
画笔的宽度用来确定所画的线条宽度,它是用设备单位表示的。
默认的画笔宽度是一个像素单位。
画笔的颜色确定了所画的线条颜色。
画笔的风格确定了所绘图形的线型,它通常有实线、虚线、点线、点划线、双点划线、不可见线和内框线等七种风格。
画刷用于指定填充的特性,许多窗口、控件以及其他区域都需要用画刷进行填充绘制,它比画笔的内容更加丰富。
画刷的属性通常包括填充色、填充图案和填充样式三种。
画刷的填充色和画笔颜色一样,都是使用COLORREF颜色类型,画刷的填充图案通常是用户定义的8 x 8位图,而填充样式往往是CDC内部定义的一些特性,它们都是以HS_为前缀的标识。
3、图像处理3.1、使用的CDC类的位图函数来输出图像。
BOOL StretchBit(int x,int y,int nWidth,int nHeight,CDC* pSrcDC,int xSrc,int ySrc,int nSrcWidth,intnSrcHeight,DWORD dwRop);x,y :表示目标矩形区域左上角的x,y坐标点;nWidth,nHeight:表示目标设备中绘制位图的宽度和高度;pSrcDC :表示源设备上下文对象指针;xSrc,ySrc:表示源设备上下文的起点x,y轴坐标;nSrcWidth,nSrcHeight:表示需要复制的位图宽度和高度;dwRop:表示光栅操作代码。
COLORREF GetPixel( int x, int y ) const; //返回坐标点的颜色值。
COLORREF SetPixel( int x, int y, COLORREF crColor ); //设置的颜色值BYTE GetRValue(DWORD rgb ); //获取一个颜色值的RGB各个分量:BYTE GetGValue(DWORD rgb );BYTE GetBValue(DWORD rgb );3.2、获取鼠标位置的颜色值获取某一点的颜色只要得到当前鼠标的设备环境CDC类对象即可,因为调用CDC类的GetPixel方法可获取某一点的颜色值。