制图3-vc绘图

上传人:wt****50 文档编号:50657648 上传时间:2018-08-09 格式:PPT 页数:68 大小:2.06MB
返回 下载 相关 举报
制图3-vc绘图_第1页
第1页 / 共68页
制图3-vc绘图_第2页
第2页 / 共68页
制图3-vc绘图_第3页
第3页 / 共68页
制图3-vc绘图_第4页
第4页 / 共68页
制图3-vc绘图_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《制图3-vc绘图》由会员分享,可在线阅读,更多相关《制图3-vc绘图(68页珍藏版)》请在金锄头文库上搜索。

1、1VCVC+绘图程序设计绘图程序设计土木工程制图土木工程制图 (第二部分)(第二部分)2WindowsWindows应用程序工作原理应用程序工作原理 WindowsWindows程序设计是一种程序设计是一种事件驱动方式事件驱动方式的程序设的程序设 计模式。在程序提供给用户的界面中有许多可操计模式。在程序提供给用户的界面中有许多可操 作的作的可视对象可视对象。 用户从所有可能的操作中任意选择,被选择的操用户从所有可能的操作中任意选择,被选择的操 作会产生某些特定的作会产生某些特定的事件事件,这些事件发生后的结,这些事件发生后的结 果是向程序中的某些对象发出果是向程序中的某些对象发出消息消息,然后

2、这些对,然后这些对 象调用相应的象调用相应的消息处理函数消息处理函数来完成特定的操作。来完成特定的操作。 WindowsWindows应用程序最大的特点就是程序没有固定应用程序最大的特点就是程序没有固定 的流程,而只是针对某个事件的处理有特定的子的流程,而只是针对某个事件的处理有特定的子 流程,流程,WindowsWindows应用程序就是由许多这样的子流应用程序就是由许多这样的子流 程构成的。程构成的。3WindowsWindows应用程序工作原理应用程序工作原理 WindowsWindows应用程序在本质上是面向对象的。程序应用程序在本质上是面向对象的。程序 提供给用户界面的可视对象在程序

3、的内部一般是提供给用户界面的可视对象在程序的内部一般是 一个对象,用户对可视对象的操作通过事件驱动一个对象,用户对可视对象的操作通过事件驱动 模式触发相应对象的可用方法。模式触发相应对象的可用方法。用 户 界 面用 户Windows 系 统操作事件消息程序中的对象调用特定消息处理函数4窗口窗口 窗口是窗口是WindowsWindows应用程序基本的操作单元,是应应用程序基本的操作单元,是应用程序与用户之间交互的接口环境,也是系统管用程序与用户之间交互的接口环境,也是系统管 理应用程序的基本单位。理应用程序的基本单位。 编写一个编写一个WindowsWindows应用程序,首先必须建立一个应用程

4、序,首先必须建立一个或多个窗口,而应用程序的运行过程就是窗口内或多个窗口,而应用程序的运行过程就是窗口内 部、窗口与窗口之间、窗口与系统之间进行数据部、窗口与窗口之间、窗口与系统之间进行数据 处理或数据交换的过程。处理或数据交换的过程。 5消息消息 在在WindowsWindows程序设计中,消息是个极为重程序设计中,消息是个极为重要的概念,用户通过窗口界面的各种操作要的概念,用户通过窗口界面的各种操作 最后都转化为发送到程序中的对象的各种最后都转化为发送到程序中的对象的各种 消息,下面介绍一些在消息,下面介绍一些在WindowsWindows程序设计程序设计中最常用的消息。中最常用的消息。6

5、消息消息 窗口消息窗口消息 WM_CREATEWM_CREATE WM_DESTROYWM_DESTROY WM_CLOSEWM_CLOSE 键盘消息键盘消息 WM_CHARWM_CHAR WM_KEYDOWNWM_KEYDOWN WM_KEYUP WM_KEYUP 7消息消息 鼠标消息鼠标消息 WM_MOUSEMOVEWM_MOUSEMOVE WM_LBUTTONDOWNWM_LBUTTONDOWN WM_LBUTTONUPWM_LBUTTONUP WM_LBUTTONDBCLICKWM_LBUTTONDBCLICK WM_RBUTTONDOWNWM_RBUTTONDOWN WM_RBUTT

6、ONUPWM_RBUTTONUP WM_RBUTTONDBCLICKWM_RBUTTONDBCLICK8WindowsWindows应用程序的基本结构应用程序的基本结构 窗口消息(窗口状态)窗口消息(窗口状态) WM_MOVEWM_MOVE WM_SIZEWM_SIZE WM_PAINTWM_PAINT 焦点消息焦点消息 WM_SETFOCUSWM_SETFOCUS WM_KILLFOCUSWM_KILLFOCUS 定时器消息定时器消息 WM_TIMERWM_TIMER9WindowsWindows应用程序的基本结构应用程序的基本结构 下面以一个最简单的下面以一个最简单的WindowsWind

7、ows程序为程序为 例来说明其基本结构。例来说明其基本结构。在在Visual C+Visual C+中新建一个中新建一个Win32 Win32 ApplicationApplication的程序,选择建立一个的程序,选择建立一个A A simple Win32 applicationsimple Win32 application程序程序 10Visual C+Visual C+和和MFC MFC Visual C+Visual C+作为一个功能非常强大的可视化应用作为一个功能非常强大的可视化应用程序开发工具,是计算机界公认的最优秀的应用程序开发工具,是计算机界公认的最优秀的应用开发工具之一。

8、开发工具之一。Visual C+ 6.0 Visual Studio 2005/2008 Visual C+ 6.0 Visual Studio 2005/2008 Visual C+Visual C+的核心是的核心是MicrosoftMicrosoft基础类库,即通常基础类库,即通常所说的所说的MFC(Microsoft Foundation Class)MFC(Microsoft Foundation Class)。 11MSDN LibraryMSDN Library帮助工具帮助工具 使用使用Visual C+Visual C+编程,就必须学会使用编程,就必须学会使用MSDN MSDN

9、LibraryLibrary这个工具。这个工具。 MSDNMSDN库提供的庞大信息集几乎涉及到微软编程库提供的庞大信息集几乎涉及到微软编程 工具和工具和Win32Win32编程的每个方面,它包含了成千上编程的每个方面,它包含了成千上 万的主题,这些主题讨论了从万的主题,这些主题讨论了从Visual C+Visual C+到到 Visual J+Visual J+、从、从MFCMFC到到ActiveXActiveX的每件事情。的每件事情。 MSDNMSDN中所包括信息的完整性确实让人吃惊。中所包括信息的完整性确实让人吃惊。 12理解理解Visual C+Visual C+的工程的工程 Visua

10、l C+Visual C+作为一种程序设计语言,它同时也是作为一种程序设计语言,它同时也是一个集成开发工具,提供了软件代码自动生成和一个集成开发工具,提供了软件代码自动生成和 可视化的资源编辑功能。在使用可视化的资源编辑功能。在使用Visual C+Visual C+开发开发应用程序的过程中,系统为我们生成了大量的各应用程序的过程中,系统为我们生成了大量的各种类型的文件。种类型的文件。 13使用使用MFC AppWizardMFC AppWizard Visual C+Visual C+是一种功能强大的通用程序设计语言是一种功能强大的通用程序设计语言,它提供了各种向导和工具帮助我们来实现所需,

11、它提供了各种向导和工具帮助我们来实现所需 的功能,在一定程度上实现了软件的自动生成和的功能,在一定程度上实现了软件的自动生成和 可视化编程。可视化编程。 AppWizardAppWizard工具的作用是帮助我们一步步地生成工具的作用是帮助我们一步步地生成一个新的应用程序,并且自动生成应用程序所需一个新的应用程序,并且自动生成应用程序所需 的基本代码。的基本代码。 14MFCMFC程序结构分析程序结构分析 CTestApp类 处理消息CMainFrame类CTestView类CTestDoc类消息消息消息文档父类消息15MFCMFC绘图的基本知识绘图的基本知识 设备描述表设备描述表(device

12、 context)(device context)的概念的概念设备描述表实际上是一种设备描述表实际上是一种WindowsWindows的的 数据结构,它保存了设备(打印机、屏幕数据结构,它保存了设备(打印机、屏幕 等)的绘图属性和绘图函数。等)的绘图属性和绘图函数。 围绕设备描述表,围绕设备描述表,MFCMFC还提供了一系列与还提供了一系列与 其配合使用的绘图工具对象,这其中包括:其配合使用的绘图工具对象,这其中包括: 画笔对象、刷子对象以及字体对象等等。画笔对象、刷子对象以及字体对象等等。 16窗口、客户区和非客户区的概念窗口、客户区和非客户区的概念 窗口是窗口是WindowsWindows

13、应用程序基本的操作单元,是其运应用程序基本的操作单元,是其运行及与用户进行交互的基本平台。行及与用户进行交互的基本平台。 屏幕输出的目标一般都是窗口内的客户区,它不包屏幕输出的目标一般都是窗口内的客户区,它不包括窗口的边框、滚动条、状态条、工具条、菜单栏括窗口的边框、滚动条、状态条、工具条、菜单栏和标题栏。可以接受无论是图形、文本、位图、还和标题栏。可以接受无论是图形、文本、位图、还 是其他类型的数据(例如是其他类型的数据(例如OLEOLE对象)。对象)。 窗口内除客户区之外的区域即为非客户区。窗口内除客户区之外的区域即为非客户区。17绘图类绘图类 MFCMFC提供了不同类型的设备描述表的类(

14、绘图提供了不同类型的设备描述表的类(绘图类):类):CDCCDC、CPaintDCCPaintDC、CClientDCCClientDC、CWindowDCCWindowDC等。其中等。其中CDCCDC类是类是MFCMFC绘图类的绘图类的根类,其它的绘图类都是根类,其它的绘图类都是CDCCDC类的派生类。类的派生类。 CDCCDC类包含了绘图所需的所有成员函数。其它类包含了绘图所需的所有成员函数。其它的派生类,都仅仅是构造函数和析构函数的不的派生类,都仅仅是构造函数和析构函数的不同。同。18绘图类的引用方法绘图类的引用方法 一般情况下,应用程序的绘图工作都要在视图(一般情况下,应用程序的绘图工

15、作都要在视图(ViewView)类中进行。)类中进行。 由由AppWizardAppWizard生成的程序中,有一个视图类的成生成的程序中,有一个视图类的成员函数员函数OnDrawOnDraw,自动实现了在视图类中引用,自动实现了在视图类中引用CDCCDC类,这是由类,这是由MFCMFC程序内部的一个特殊机制实程序内部的一个特殊机制实现的。当视图窗口绘制或重绘制(窗口刷新消息现的。当视图窗口绘制或重绘制(窗口刷新消息WM_PAINTWM_PAINT)时,都要调用)时,都要调用OnDrawOnDraw函数。函数。 19绘图类的引用方法绘图类的引用方法在在testView.cpptestView.cpp文件中可以找到文件中可以找到OnDrawOnDraw函数,其代码:函数,其代码: / CTestView drawing/ CTestView drawing void CTestView:OnDraw(CDC* pDC)void CTestView:OnDraw(CDC* pDC) / TODO: add draw code for native data here/ TODO: add draw code for native data here / / 用户在此添加代码。用户在此添加代码。 其中,其中,pDCpDC就是一个设备描述表类就是一个设备描述表类CDCCDC对象的指针

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号