计算机图形学MFC上机教程
上机操作
类属:CDC::SetViewportExt 原型:virtual CSize SetViewportExt( int cx, int cy ); 返回值:原视区范围的CSize对象。 参数说明:cx视区x范围的逻辑坐标,cy 视区y范围的逻辑坐标。
4. 设置视区坐标原点函数
类属:CDC::SetViewportOrg 原型:virtual CPoint SetViewportOrg( int x, int y ); 返回值:原视区原点的CPoint对象。 参数说明:参数x,y是视区的新原点坐标。
3. 画笔函数
默认的画笔是一个像素单位的黑色实线 要想更换画笔,可以在创建新画笔对象后, 将其选入设备上下文,就可使用新画笔进 行绘图。
画笔的风格
风格代码 PS_SOLID PS_DASH PS_DOT PS_DASHDOT PS_DASHDOTDOT PS_NULL PS_INSIDEFRAME 线型 实线 虚线 点线 点划线 宽度 任意指定 1(不可任意指定) 1(不可任意指定) 1(不可任意指定) 颜色 纯色 纯色 纯色 纯色 纯色 纯色 纯色
Microsoft Foundation Class Library
微软基类库MFC是以C++形式封装的Windows
API(Application Program Interface), 包含了一百多个已经定义好的常用类。
MFC的上机操作过程
启动Microsoft Visual C++ 6.0 从【File】菜单中选择【New】命令,弹出 【New】对话框,切换到【Projects】选项卡。 在左边窗口中选择MFC AppWizard(exe),在 右边的Projects name文本框中键入应用程序 名,这里输入Test,在Location文本框中出现 用于存放应用程序的根目录,这里设置为D: \Test。其余保持默认值。如图所示。单击 【OK】按钮。
第一章 MFC图形编程基础汇总
第一章MFC图形编程基础1.1MFC概述MFC(Microsoft Foundation Classes)库是Microsoft为利用VC++开发Windows 应用程序而提供的应用程序框架。
在这个框架的支持下,对于不同的应用程序,编程的主要任务是填写各自特殊部分的代码。
MFC类库由130多个类组成,封装了两千多个API函数。
使用MFC编程具有很多优点:用类编程,将代码和数据封装在类中,大大减少了编程的复杂性;通过继承实现了基本的代码重用,在开发应用程序的过程中,我们可以通过继承来使用MFC中已经定义了的大量类,在保有它们原有的特性的同时,可以根据我们的需要来修改它们,使其具有新的特性;在使用MFC 进行编程的过程中,可以利用其提供的各种工具,提高编程的效率;借助MFC 类库中设计良好的类资源可以减少代码规模。
使用MFC类库,编程者只需要注意应用程序与通用的Windows程序所不同的特性,而几乎所有的应用程序与Windows之间的接口都是由应用程序框架来实现的,这大大降低了编程的难度。
Windows区别于DOS的一个重要的特征就是它的图形界面,所以,在Windows的程序中绘图就成为了Windows编程的一个非常重要的内容。
为了满足编程者在程序中绘图的需要,MFC提供了许多与绘图相关的类和函数,使用它们用户可以绘制出想要的各种图形。
1.2创建MFC项目使用MFC框架编程,首先需要创建一个MFC项目,MFC的应用程序开发都是在一个MFC项目中完成的。
在本教程中,我们使用的开发平台是Microsoft Visual Studio 6.0中的Visual C++ 6.0。
1.2.1使用MFC AppWizard创建MFC项目在Microsoft Visual Studio 6.0中,我们可以利用MFC AppWizard(MFC应用程序向导)来建立MFC项目,它提供了一个应用程序所必需的框架文件,如源文件、头文件、资源文件、项目文件等等。
mfc程序设计实例的步骤
mfc程序设计实例的步骤MFC程序设计是Windows平台下的一种经典的程序开发框架,它提供了一系列的软件工具和技术,可以帮助我们快速地开发高效、稳定、易于维护的Windows应用程序。
如果你想学习MFC程序设计,那么下面是一些基本的步骤,可以帮助你入门。
1. 准备工作:安装Visual Studio和MFC库首先,你需要安装Visual Studio开发环境,因为MFC是由微软开发的,所以它的最佳开发环境就是Visual Studio。
然后,你需要安装MFC库,这个库包含了许多用来开发Windows桌面应用程序的类、函数和工具。
2. 创建MFC应用程序项目在Visual Studio中创建一个新的MFC应用程序项目,你需要选择一个MFC应用程序的模板,然后配置一些基本信息,如项目名称、位置等。
一旦创建好了项目,你就可以开始编写代码了。
3. 设计用户界面设计好用户界面是一个重要的步骤,因为它是用户与你的应用程序交互的主要方式。
在MFC中,你可以使用类似于Visual Basic的可视化设计工具来创建Windows窗体、对话框和控件,然后使用代码来处理它们的事件和行为。
4. 编写程序代码在MFC中,你可以使用C++编程语言来编写程序代码。
你需要了解MFC库中提供的类、函数和工具,这些都是你开发应用程序的基础。
你可以使用MFC中的类来创建窗口、菜单和工具栏等控件,处理消息、事件和命令等操作。
5. 调试和测试调试和测试是开发过程中不可或缺的步骤。
你可以使用Visual Studio的调试工具来发现和解决程序中的错误和问题,确保你的程序能够正确地运行和达到预期的功能。
6. 发布和部署最后,你需要将你的应用程序发布和部署到用户的计算机上。
你可以使用Visual Studio的部署工具来创建安装程序或者自己手动进行部署。
确保你的应用程序能够在用户的计算机上正常运行和使用。
以上就是MFC程序设计的基本步骤。
当然,这只是一个大概的概述,如果你想成为一个MFC程序员,你需要不断学习和实践,才能掌握更多的技能和经验。
计算机图形学第4章MFC基本应用程序的建立
{ public:
CEx_SDIHelloApp();
//{{AFX_VIRTUAL(CEx_SDIHelloApp)
public:
virtual BOOL InitInstance();
//}}AFX_VIRTUAL
// Implementation(实现)
//{{AFX_MSG(CEx_SDIHelloApp)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
// 声明消息映射
};
...
4.3使用MFC AppWizard (10 of 24)
代码中,
//{{AFX_VIRTUAL(类名)
...
//}}AFX_VIRTUAL
是ClassWizard定义的专门用作虚函数重载的标记,表示该程序块中的虚函 数的重载是由ClassWizard来自动管理的,一般不需要去更改。同样,
Windows编程的特点:
➢ 消息驱动机制
DOS程序是通过调用系统的函数来获得用户输入的,Windows程序则是 通过操作系统发送的消息来处理用户输入的。
无论是系统产生的动作或是运行应用程序产生的动作,都称为事件 (Events)产生的消息(Message)。在应用程序中,通过接收消息、分发消 息、处理消息来和用户进行交互。许多消息都经过了严格的定义,并且适 用于所有的应用程序。
CObject
CWinTread
CCmdTarget
CDocument
CWinApp
CWnd
CView
CFrameWnd
CDialog及控件
CMDIFrameWnd CMDIChildWnd CMiniFrameWnd 图4.4 MFC类的基本层次结构
MFC入门教程
MFC入门教程目录+-- 第一章 VC入门|------ 1.1 如何学好VC|------ 1.2 理解Windows消息机制|------ 1.3 利用Visual C++/MFC开发Windows程序的优势|------ 1.4 利用MFC进行开发的通用方法介绍|------ 1.5 MFC中常用类,宏,函数介绍+-- 第二章图形输出|------ 2.1 和GUI有关的各种对象|------ 2.2 在窗口中输出文字|------ 2.3 使用点,刷子,笔进行绘图|------ 2.4 在窗口中绘制设备相关位图,图标,设备无关位图|------ 2.5 使用各种映射方式|------ 2.6 多边形和剪贴区域+-- 第三章文档视结构|------ 3.1 文档视图框架窗口间的关系和消息传送规律|------ 3.2 接收用户输入|------ 3.3 使用菜单|------ 3.4 文档,视,框架之间相互作用|------ 3.5 利用序列化进行文件读写|------ 3.6 MFC中所提供的各种视类介绍+-- 第四章窗口控件|------ 4.1 Button|------ 4.2 Static Box|------ 4.3 Edit Box|------ 4.4 Scroll Bar|------ 4.5 List Box/Check List Box|------ 4.6 Combo Box/Combo Box Ex|------ 4.7 Tree Ctrl|------ 4.8 List Ctrl|------ 4.9 Tab Ctrl|------ 4.A Tool Bar|------ 4.B Status Bar|------ 4.C Dialog Bar|------ 4.D 利用AppWizard创建并使用ToolBar StatusBar Dialog Bar |------ 4.E General Window|------ 4.F 关于WM_NOTIFY的使用方法+-- 第五章对话框|------ 5.1 使用资源编辑器编辑对话框|------ 5.2 创建有模式对话框|------ 5.3 创建无模式对话框|------ 5.4 在对话框中进行消息映射|------ 5.5 在对话框中进行数据交换和数据检查|------ 5.6 使用属性对话框|------ 5.7 使用通用对话框|------ 5.8 建立以对话框为基础的应用|------ 5.9 使用对话框作为子窗口+-- 第六章网络通信开发|------ 6.1 WinSock介绍|------ 6.2 利用WinSock进行无连接的通信+------ 6.3 利用WinSock建立有连接的通信《Visual C++开发指南》闻怡洋/文第一章 VC入门1.1 如何学好VC这个问题很多朋友都问过我,当然流汗是必须的,但同时如果按照某种思路进行有计划的学习就会起到更好的效果。
第一章 MFC图形编程基础汇总
第一章MFC图形编程基础1.1MFC概述MFC(Microsoft Foundation Classes)库是Microsoft为利用VC++开发Windows 应用程序而提供的应用程序框架。
在这个框架的支持下,对于不同的应用程序,编程的主要任务是填写各自特殊部分的代码。
MFC类库由130多个类组成,封装了两千多个API函数。
使用MFC编程具有很多优点:用类编程,将代码和数据封装在类中,大大减少了编程的复杂性;通过继承实现了基本的代码重用,在开发应用程序的过程中,我们可以通过继承来使用MFC中已经定义了的大量类,在保有它们原有的特性的同时,可以根据我们的需要来修改它们,使其具有新的特性;在使用MFC 进行编程的过程中,可以利用其提供的各种工具,提高编程的效率;借助MFC 类库中设计良好的类资源可以减少代码规模。
使用MFC类库,编程者只需要注意应用程序与通用的Windows程序所不同的特性,而几乎所有的应用程序与Windows之间的接口都是由应用程序框架来实现的,这大大降低了编程的难度。
Windows区别于DOS的一个重要的特征就是它的图形界面,所以,在Windows的程序中绘图就成为了Windows编程的一个非常重要的内容。
为了满足编程者在程序中绘图的需要,MFC提供了许多与绘图相关的类和函数,使用它们用户可以绘制出想要的各种图形。
1.2创建MFC项目使用MFC框架编程,首先需要创建一个MFC项目,MFC的应用程序开发都是在一个MFC项目中完成的。
在本教程中,我们使用的开发平台是Microsoft Visual Studio 6.0中的Visual C++ 6.0。
1.2.1使用MFC AppWizard创建MFC项目在Microsoft Visual Studio 6.0中,我们可以利用MFC AppWizard(MFC应用程序向导)来建立MFC项目,它提供了一个应用程序所必需的框架文件,如源文件、头文件、资源文件、项目文件等等。
实验一 基于MFC的绘图基础
实验一基于MFC的绘图基础
一、实验目的与要求
1、熟悉Visual C++的界面
2、掌握MFC的上机操作步骤
3、了解计算机的设备坐标系
4、理解计算机图形显示的像素概念
5、理解RGB色彩模型
6、掌握MFC中画点函数的用法
7、掌握MFC中画笔的用法
8、掌握利用画笔完成直线的绘制的方法
二、实验内容
1、利用应用程序向导生成单文档的应用程序。
工程名用中文名;在CMyView类中的OnDraw函数中添加绘图的相应代码,由于OnDraw函数是系统框架自动生成的,所以编译后执行程序就可以马上看到绘图的成果。
2、进行代码添加。
1.用SetPixel函数画点(这里的点就是像素),利用for循环连续地画点就形成一条直线,试分别作出水平,垂直和45°的三条直线,直线用渐变的颜色显示出来(原理是对每个点设置不同的颜色,对RGB色彩模型的参数值做递增或递减);
2.利用MFC中的画笔来画直线,尝试画笔的不同样式;首先定义一个画笔,然后画线用MoveTo和LineTo函数完成。
三、实验成果
水平的直线(红色渐进)如下图:
垂直的直线(绿色渐进)如下图:
45°倾斜的直线(蓝色渐进)如下图:
2画笔画直线。
【计算机图形学课程】一.MFC基本绘图函数使用方法
【计算机图形学课程】⼀.MFC基本绘图函数使⽤⽅法这是最近我《计算机图形学》课程实践编程课介绍的相关知识,主要是想通过MFC C++绘图,让学⽣体会下图形学相关的编程及简单的图形绘制,同时⾮常佩服学⽣的想象⼒,他们做得真的不错。
希望这篇基础⽂章对你有所帮助吧!尤其是有这门课程的学⽣或编程爱好者,如果⽂章存在错误或不⾜之处,还请海涵。
参考书籍:孔令德·《计算机图形学基础教程(Visual C++版)》学⽣绘制的图形还是⾮常有创新的,表⽰很满意,哈哈哈~⼀. MFC绘图基础知识 CDC类PS:这部分主要引⼊孔令德⽼师的知识,这篇⽂章以后⾯的编程为主。
VC++具有强⼤的绘图功能,虽然基于对话框的应⽤我推荐⼤家使⽤C# Winform程序,但是计算机图形和图像的基础知识,还是强烈推荐使⽤VC++ MFC实现。
这有助于让你深⼊的理解图形变换、图像处理等知识。
在Windows平台下,GDI(Graphics Device Interface)图形设备接⼝被抽象为上下⽂CDC类(Device Context,DC)。
Windows平台直接接收图形数据信息的不是显⽰器和打印机等硬件设备,⽽是CDC对象。
MFC中,CDC类定义设备上下⽂对象的基类,封装了所需的成员函数,调⽤CDC类的成员函数,绘制和打印图形及⽂字。
CDC类派⽣出CClientDC类、CMetaFileDC类、CPaintDC类和CWindowDC类,请读者⾃⾏学习,同时推荐阅读原书。
MFC常⽤CPoint、CRect、CSize等数据类型。
(1) CPoint类:存放点坐标(x,y);(2) CRect类:存放矩形左上顶点和右下⾓顶点的坐标(top、left、right、bottom),其中(top,left)为矩形的左上⾓点,(right,bottom)为矩形的右下⾓点;(3) CSzie类:存放矩形的宽度和⾼度的坐标(cx,cy),其中cx为矩形的宽度,cy为矩形的⾼度。
MFC图形界面编程入门教程
MFC图形界面编程入门教程MFC(Microsoft Founda tionClasse s)是微软提供的用于简化编程的一个类库,其使用面向对象的思想将W indo ws的图形界面编程接口封装到若干个类中,并且提供了一个可视化的编程环境,方便的程序员的开发。
使用MFC可以方便地创建基于对话框或文档视图的程序,在其上添加各种控件(按钮、编辑框等等),通过消息映射机制使控件操作和某个函数对应起来。
第一章如何添加按钮和编辑框工程文件见:演示工程.rar新建工程到现在,我们的工作都是在资源编辑器里完成的,主要针对的是界面方面。
下面我们将为按钮添加一些处理代码,比如弹出一个对话框,显示我们在编辑框里输入的文字。
点击OK,完成添加变量操作。
下面添加按钮的响应函数右击按钮,选择建立类向导,弹出的对话框要求我们为按钮响应函数取个名字。
我们将函数名设为OnS how,点击OK后,可以看到Cl assWi zard对话框下半部分多了一行信息,双击它或者点击右边的E di t Code按钮就在里面添加如下代码:Update Data(TRUE);AfxMes sageB ox(m_myst ring);这两个函数都是由MFC提供的。
调用Upda teDat a(TRUE)将我们在编辑框输入的文本更新到其对应的变量中(即m_mystring),AfxMes sageB ox(m_myst ring)可以将变量的内容显示到消息框中。
现在编译运行程序,在编辑框中如入一些内容,点击显示按钮,效果如下:第二章点名程序中的控件工程文件见:点名程序工程.rar编辑框学号和姓名的显示使用了只读的编辑框,和普通编辑框的添加方式相同,只读属性可以在其属性中设置(右下):与前面的例子不同的还有其是用于显示文本而输入文本,下拉列表我们使用了下拉列表来选择班级。
mfc绘图程序上机步骤
mfc绘图程序上机步骤首先生成MFC程序空框架空框架中的每个类的职责是什么要自己理解清楚第一次课:1.定义自己的数据类CLine直线类,用于绘图点击菜单:插入—类选择Generic class,输入类名,每个类都是分成两个文件.h 中只有类体,包含类的数据成员定义和成员函数声明,.cpp中就是成员函数的类体外实现classCLine{int x1,y1,x2,y2;public:CLine(int a=0,int b=0,int c=0,int d=0);virtual ~CLine();int Getx1();int Gety1();int Getx2();int Gety2();void SetPoint1(intx,int y);很多函数是在后面使用中发现问题逐渐添加的void SetPoint2(intx,int y);};2.自定义的类要作为数据成员出现在Doc类中classCSmallCADDoc : public CDocument{protected: // create from serialization onlyCSmallCADDoc();DECLARE_DYNCREATE(CSmallCADDoc)// Attributespublic:CLine line1; //数据成员应该是私有,但是由于文档类与视图类交换频繁,为了访问方便,直接定义成公有了。
你也可以定义成私有,再定义一个Get函数间接访问,取他的值3.注意:添加了这个数据成员后,需要增加几个#include “Line.h”语句添加的原则是,每个cpp文件都单独编译,哪里用到新的类,相应的cpp前就要增加#include “。
”语句此处是在CSmallCADDoc类中添加了一个CLine line1;类对象,在SmallCADDoc.h文件中。
所以,凡是包含了#include “SmallCADDoc.h”的地方都要在前面添加#include “Line.h”语句。
MFC入门教程范文
MFC入门教程范文MFC(Microsoft Foundation Class)是微软公司为Windows操作系统开发的一套面向对象的图形用户界面(GUI)应用程序框架。
作为Windows开发的主要框架之一,MFC提供了丰富的类库和工具,可以帮助开发者快速高效地创建Windows应用程序。
本文将介绍MFC的基本概念、开发环境和入门教程,以帮助读者快速上手MFC开发。
一、MFC基本概念1.1MFC的定义和特点MFC是一个面向对象的框架,以C++语言编写,提供了一套丰富的类库和工具,用于开发Windows应用程序。
MFC包含了大量的封装类,可以帮助开发者简化Windows API的调用,提高开发效率。
MFC的优点包括:提供了图形用户界面的开发工具和控件,简化了用户界面的设计和开发;封装了常用的Windows API,提供了更高层次的抽象;提供了方便的数据操作和管理机制,支持数据库访问和数据绑定等功能。
1.2MFC的组成和架构MFC的核心类库包含在afxwin.h头文件中,其中包括了CObject、CWnd、CWinApp等基础类。
MFC的应用程序通常由一个派生自CWinApp类的应用程序对象和一个或多个派生自CWnd类的窗口对象组成。
1.3MFC的开发环境和工具二、MFC开发入门教程2.1创建一个MFC应用程序首先打开Visual Studio,选择File->New->Project。
在弹出的对话框中选择Visual C++->MFC,然后选择MFC Application作为项目类型。
在下一步中,可以选择应用程序的名称、位置和其他选项。
点击Finish按钮即可完成项目的创建。
2.2设计用户界面创建完成后,会自动为我们生成一个基本的窗口界面。
在资源视图中,可以看到应用程序的资源文件,包括窗口的图标、菜单等。
可以使用可视化设计工具对界面进行设计。
例如,可以通过拖拽按钮控件到窗口上,在属性窗口中修改按钮的文字、大小等属性。
MFC使用教程
为事件,也把系统操作如更新屏幕定义为事件。 在比较低级的编程方法中,如用 C 直接编写 Windows API 应用程序,代码量是非常大的,因为你所要 照顾的细节太多了。例如,你用某种类型的结构来接收单击鼠标事件。你的事件循环中的代码会查看结构 中不同域,以确定哪个用户界面对象受到了影响,然后会完成相应的操作。当屏幕上有很多对象时,应用 程序会变得很大。只是简单地处理哪个对象被单击和对它需要做些什么要花费大量的代码。 幸运的是,你可以在比较高级的方法来进行编程,这就是使用 MFC。在 MFC 中,几乎所有的低级的 细节处理都为你代办了。如果你把某一用户界面对象放在屏幕上,你只需要两行代码来建立它。如果用户 单击一个按钮,则按钮自己会完成一切必要的操作,从更新屏幕上的外观到调用你程序中的预处理函数。 该函数包含有对该按钮作出相应操作的代码。 MFC 为你处理所有的细节: 你建立按钮并告知它特定的处理 函数,则当它被按下时,它就会调用相应的函数。第四部分介绍了怎样使用消息映射来处理事件。 例子: 理解一个典型的 MFC 程序的结构和样式的最好方法是输入一段小程序,然后编译和运行它。下面的 程序是一段简单的"hello world"程序。这对很多 C 程序员都是很熟悉了,让我们看一下如何用 MFC 方法来 实现。如果你是第一次看到这类程序,也许比较难理解。这没关系,我们后面会详细介绍。现在你只要用 Visual C++ 环境中建立、编译和运行它就可以了。 //hello.cpp #include <afxwin.h> // 说明应用程序类 class CHelloApp : public CWinApp { public: virtual BOOL InitInstance(); }; // 建立应用程序类的实例 CHelloApp HelloApp; // 说明主窗口类 class CHelloWindow : public CFrameWnd { CStatic* cs; public: CHelloWindow(); }; // 每当应用程序首次执行时都要调用的初始化函数 BOOL CHelloApp::InitInstance() { m_pMainWnd = new CHelloWindow(); m_pMainWnd->ShowWindow(m_nCmdShow); m_pMainWnd->UpdateWindow(); return TRUE; } // 窗口类的构造函数 CHelloWindow::CHelloWindow() {
mfc画图课程设计
mfc画图课程设计一、教学目标本课程旨在通过MFC画图的教学,使学生掌握MFC的基本使用方法和绘图原理,培养学生运用MFC进行绘图的能力。
知识目标:使学生了解MFC的基本概念和原理,掌握MFC的绘图方法和相关技术。
技能目标:培养学生运用MFC进行绘图的能力,能够独立完成简单的绘图程序设计。
情感态度价值观目标:培养学生对计算机编程的兴趣,增强学生解决问题的信心,培养学生的创新精神和团队协作意识。
二、教学内容本课程的教学内容主要包括MFC的基本概念、绘图原理和绘图方法。
1.MFC的基本概念:介绍MFC的定义、特点和应用领域。
2.绘图原理:讲解MFC绘图的基本原理,包括坐标系统、绘图函数和绘图模式。
3.绘图方法:介绍MFC绘图的基本方法,包括线条、矩形、椭圆、文字等的绘制。
三、教学方法本课程采用讲授法、实践法和讨论法进行教学。
1.讲授法:通过讲解MFC的基本概念、绘图原理和绘图方法,使学生掌握相关知识。
2.实践法:通过上机实践,使学生亲自操作MFC进行绘图,提高学生的动手能力。
3.讨论法:通过分组讨论,引导学生思考和解决问题,培养学生的团队协作能力和创新精神。
四、教学资源本课程的教学资源包括教材、多媒体资料和实验设备。
1.教材:选用《MFC画图教程》作为主要教材,辅助学生学习MFC的基本概念、绘图原理和绘图方法。
2.多媒体资料:制作PPT课件,生动形象地展示MFC的绘图效果,帮助学生更好地理解绘图原理和方法。
3.实验设备:提供计算机实验室,让学生能够亲自动手实践,提高运用MFC进行绘图的能力。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以全面、客观、公正地评价学生的学习成果。
1.平时表现:评估学生在课堂上的参与程度、提问回答和团队协作等情况,以体现学生的学习态度和积极性。
2.作业:布置课后练习和项目任务,评估学生的绘图技巧和编程能力,以及学生对课堂知识的掌握程度。
3.考试:进行期末考试,以检验学生对MFC画图知识的综合运用能力。
MFC教程
1.2 Visual C++6.0界面介绍
• 从上图中可以看出,Visual C++的界面被分成了7部分。上面依次标 题栏、菜单栏和工具栏。中间左侧部分是工作区窗口,右侧部分是编 辑区。最下方是输出窗口和状态栏。
1.2.1 工作区窗口和输出窗口
• 工作区窗口和输出窗口是在一个程序编译时使用最多的停靠式窗口。 工作区窗口中显示了当前程序中的所有类、资源和文件信息。工作区 窗口分为3个部分:Class View(类视图)、Resource View(资源视 图)和File View(文件视图)。 • Class View:显示当前工作区中所有工程定义的C++类。双击某个类 名,Visual C++会自动打开这个类的文件,并将编辑区定位到该类的 定义处。双击类中的成员函数和变量,编辑区则定位到该成员函数或 变量的定义处。
1.2.3 编辑区
• 在Visual C++中,编写应用程序代码的位置就是编辑区。该编辑区的 功能十分强大,智能化程度也非常高。在编辑区内,除了能编写 C/C++语言外,还能编写SQL、HTML和VBScript等其他编程语言。 如下图所示。
1.2.4 联机帮助
• Visual C++6.0不像其他集成开发环境一样把帮助系统集成在开发环境 内部,而是提供了一个专门为Visual C++设计的MSDN类库。MSDN 虽然是一个独立的帮助系统,但却能很好地和Visual C++6.0集成在一 起。 • MSDN的使用方式有以下几种: • 单击【Help】|【Contents】命令; • 单击【Help】|【Search】命令; • 单击【Help】|【Index】命令; • 按下【F2】键。 • 通过上述几种命令方式,即可运行MSDN。
计算机图形学MFC编程
计算机图形学的MFC编程——基于对话框、菜单绘图预备知识:1、Windows图形编程主要是利用图形设备接口(GDI)中的相关函数实现。
在编程中我们主要应用CDC和CClientDC类。
定义格式:CDC pDC=GetDC()或CDC *pDC=GetDC()CClientDC pDC(this).常用函数:pDC.SetPixel(x,y,RGB(r,g,b)).2、对话框属于类,建立对话框的对象时,需把对话框类的头文件包含进来。
3、菜单项属于函数,通过可视化进行设置、添加。
操作过程:(以绘制圆为例)1、建立工程文件:选择MFC APPWizard [exe],工程名尽量用英文名。
单击OK.2、选择单文档MFC程序:4、单击Finish,工程建完。
单击OK5、建立对话框,在视图区,选择Resource View选项夹。
6、可视化建立对话框。
右击Dialog,选择insert Dialog选项,出现对话框的可视化设计界面。
其中旁边的竖条是控件工具箱,在图形学编程中,需要我们知道其中的两个:其中一个是第二行第一个(图标代码为Aa)称为静态文本框,另外一个是第二行第二个(图标代码为ab)称为动态文本框。
7、建立静态文本框。
我们可以通过选中该控件,将鼠标移到对话框面板上,在对话框面板上拖拽实现添加静态文本框,右击该文本框,选择properties选项,在Caption选项中实现对文本框的内容的修改。
动态文本框,右击该文本框,选择properties选项,ID框可采用默认的编码,要分清楚其实际含义。
9、通过Layout菜单实现对话框设计的整洁性。
通过ctrl选中两个或二个以上文本框实现上下或左右的对齐。
可以实现对话框大小相同10、建立对话框类。
双击对话框设计面板,出现一个建立对话框类的对话框,选择默认的create a new class.单击OK,为对话框类命名InputDlog。
单击OK结束.11、添加对话框的变量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例相等 向自定义。
用户自定义, 逻辑坐标。坐标原点位置可
MM_ANSIOTROPIC X轴和Y轴比 以自由设置,X轴和Y轴方
例独立设置 向自定义。
映射模式
在缺省情况下,一般使用的是设备坐标系 MM_TEXT,坐标原点位于客户区的左上角, X轴水平向右,Y轴垂直向下,坐标基本单 位为一个像素。
1. 设置映射模式函数
在对话框【MFC AppWizard-Step1】中,选中 Single Document单选按钮,其余保持默认 值,如图所示。单击【Finish】按钮结束。
完成上述步骤后,应用程序Test的框架即被 生成,出现程序工作区。如图所示。
在工作区的【ClassView】面板中显示所创建 的类和成员函数
像素点。
3. 画笔函数
画笔是用来绘制直线、曲线或图形的边界 线,是绘图工具类之一
画笔通常具有线型、宽度和颜色三种属性 画笔的线型通常有实线、虚线、点线、点
划线、双点划线、不可见线和内框架线7 种,这些线型都是以PS_为前缀的预定义 标识符
3. 画笔函数
默认的画笔是一个像素单位的黑色实线 要想更换画笔,可以在创建新画笔对象后,
坐标单位
坐标系特征
一个像素 0.1mm 0.01mm 0.01inch
0.001inch
设备坐标。屏幕左上角为坐标原点, X轴向右,Y轴向下。
逻辑坐标。坐标原点位置可以自由 设置,X轴向右,Y轴向上。
逻辑坐标。坐标原点位置可以自由 设置,X轴向右,Y轴向上。
逻辑坐标。坐标原点位置可以自由 设置,X轴向右,Y轴向上。
1. 绘制像素函数
类属:CDC::SetPixel 原型:COLORREF SetPixel(int x,int
y,COLORREF crColor ); 设置某像素点的RGB值
1. 绘制像素函数
参数说明:SetPixel 函数中,COLORREF是32 位颜色数据类型;
第一和第二个参数x,y是像素点位置的逻辑 坐标值,
在微软基类库MFC中,CDC类是定义设备 上下文对象的基类,所有绘图函数都在 CDC基类中定义。
2.2节内容
2.2.1 CDC类结构和GDI对象 2.2.2 映射模式 2.2.3 CDC类的主要绘图成员函数 2.2.4 设备上下文的调用和释放 2.2.5 VC++绘制图形的几种方法
( int cx, int cy ); 返回值:原窗口范围的CSize对象。 参数说明:cx窗口x范围的逻辑坐标,cy
窗口y范围的逻辑坐标。
3. 设置视区范围函数
类属:CDC::SetViewportExt 原型:virtual CSize
SetViewportExt( int cx, int cy ); 返回值:原视区范围的CSize对象。 参数说明:cx视区x范围的逻辑坐标,cy
2.2.2 映射模式
把图形显示在屏幕坐标系中的过程称为映射 根据映射模式的不同可以分为 逻辑坐标 设备坐标 逻辑坐标的单位是米制尺度或其它与字体相关
的尺度 设备坐标的单位是像素
映射模式
模式代码 MM_TEXT MM_LOMETRIC MM_HIMETRIC MM_LOENGLISH MM_HIENGLISH
CTestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); COLORREF c; pDC->SetPixel(20,20,RGB(255,0,0)); c=pDC->GetPixel(20,20); pDC->SetPixel(60,20,c); }
语句:COLORREF c; 注释:变量c用于存放像素点的颜色值
Visual C++ 6.0绘图基础
2.1 MFC上机操作步骤 2.2 基本绘图函数 2.3 本章小结 2.4 习题
2.2 MFC上机操作步骤
关于工具Visual C++ 6.0
是目前使用极为广泛的可视化编程平台。 使用VC++语言开发的图形,与使用Turbo C
语言开发的图形相比,不仅可以显示真彩 色,而且可以实现交互式绘图。
第三个参数crColor是像素点的颜色值, COLORREF型变量可以利用RGB(bRed,bGreen, bBlue)来指定相应的颜色值,每种颜色用一 个字节表示,可以被设定为0~255之间的任意 值,0代表无色,255代表全色。
2. 获取像素颜色函数
类属:CDC::GetPixel 原型:COLORREF GetPixel(int x,int
y)const; 返回值:指定像素的RGB值。 参数说明:得到指定像素的RGB颜色值
例4 在屏幕的(20,20)坐标位置处绘制一个红 色像素点。然后取出该像素点的颜色,在屏幕的 (60,20)坐标处绘制一个相同颜色的像素点。
void CTestView::OnDraw(CDC* pDC) {
OnDraw(CDC* pDC)函数
void CTestView::OnDraw(CDC* pDC) {
CTestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); } ASSERT_VALID(pDoc)函数使pDoc指针有效。 使用pDC指针,可以对CDC类的成员函数进行 操作。 注意:OnDraw函数是由系统框架直接调用的, 程序一运行就会自动执行。
将其选入设备上下文,就可使用新画笔进 行绘图。
画笔的风格
风格代码 PS_SOLID PS_DASH
PS_DOT PS_DASHDOT
PS_DASHDOTDOT
Microsoft Foundation Class Library
微软基类库MFC是以C++形式封装的Windows API(Application Program Interface),
包含了一百多个已经定义好的常用类。
MFC的上机操作过程
启动Microsoft Visual C++ 6.0 从【File】菜单中选择【New】命令,弹出
CMetaFileDC类
Windows图元文件设备上下文类 CMetaFileDC封装了在一个Windows图
元文件中绘图的方法 图元文件是一系列与设备无关的图片
的集合,由于它对图像的保存比像素 更精确,因而往往在要求较高的场合 下使用
例如,AutoCAD中的图像保存等。
CPaintDC类
【New】对话框,切换到【Projects】选项卡。 在左边窗口中选择MFC AppWizard(exe),在
右边的Projects name文本框中键入应用程序 名,这里输入Test,在Location文本框中出现 用于存放应用程序的根目录,这里设置为D: \Test。其余保持默认值。如图所示。单击 【OK】按钮。
全部展开FileView面 板后,显示如图的 界面内容
本书后续的编程过程 中一般使用的是 CTestView类的 TestView.h头文件 和TestView.cpp源 文件。
OnDraw(CDC* pDC)函数
void CTestView::OnDraw(CDC* pDC) {
CTestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); } pDC定义为CDC类的指针。 pDoc通过GetDocument()函数得到了指向 文档类CTestDoc的指针。
逻辑坐标。坐标原点位置可以自由 设置,X轴向右,Y轴向上。
映射模式
模式代码
坐标单位
坐标系特征
MM_TWIPS
1/440inch或 1/20点
逻辑坐标。坐标原点位置可 以自由设置,X轴向右,Y 轴向上。
用户自定义, 逻辑坐标。坐标原点位置可
MM_ISOTROPIC X轴和Y轴比 以自由设置,X轴和Y轴方
在【Resource View】面板中显示所创建的资源
在【FileView】面板中显示源程序文件,主 要包括程序源文件(*.CPP) 、头文件 (*.h) 和资源文件(*.ico、*.bmp等)
从【ClassView】面板可以看出
CTestApp是应用的主函数类,用来处理消息。
MFC中的数据是存储在CTestDoc类文档中 结果的显示是在CTestView类中 文档类负责管理和维护数据本身 视图类负责处理用户鼠标和键盘的操作
2.2.1 CDC类生类
CClientDC类
显示器客户区设备上下文类 CClientDC只能在窗口的客户区(不包
括边框、标题栏、菜单栏以及状态栏 的空白区域)进行绘图 点(0,0)是客户区的左上角 其构造函数调用GetDC函数 其析构函数调用ReleaseDC函数
!按钮
点击工具条上的 “!”按钮,就可以直接编 译、运行程序
尽管未编写一句代码,但Test程序已经形 成一个可执行程序框架
返回
2.2 基本绘图函数
在Windows平台上,应用程序的图形设备 接口(Graphics Device Interface, GDI)被抽象化为设备上下文(Device Content,DC)
语句:pDC->SetPixel(20,20,RGB(255,0,0)); 注释:在屏幕的(20,20)坐标位置处,绘制
一个红色的像素点
语句: c=pDC->GetPixel(20,20); 注释: c保存该像素点的颜色
语句: pDC->SetPixel(60,20,c); 注释:在像素点(60,20)处以颜色值c绘制一个
CBrush类:封装了GDI画刷,可以选作设备 上下文的当前画刷。画刷用于填充图形内部。