制图3-VC绘图.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《制图3-VC绘图.ppt》由会员分享,可在线阅读,更多相关《制图3-VC绘图.ppt(68页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、1VC+绘图程序设计土木工程制图 (第二部分)(第二部分)2Windows应用程序工作原理 WindowsWindows程序设计是一种程序设计是一种程序设计是一种程序设计是一种事件驱动方式事件驱动方式事件驱动方式事件驱动方式的程序设的程序设的程序设的程序设计模式。在程序提供给用户的界面中有许多可操计模式。在程序提供给用户的界面中有许多可操计模式。在程序提供给用户的界面中有许多可操计模式。在程序提供给用户的界面中有许多可操作的作的作的作的可视对象可视对象可视对象可视对象。用户从所有可能的操作中任意选择,被选择的操用户从所有可能的操作中任意选择,被选择的操用户从所有可能的操作中任意选择,被选择的操
2、用户从所有可能的操作中任意选择,被选择的操作会产生某些特定的作会产生某些特定的作会产生某些特定的作会产生某些特定的事件事件事件事件,这些事件发生后的结,这些事件发生后的结,这些事件发生后的结,这些事件发生后的结果是向程序中的某些对象发出果是向程序中的某些对象发出果是向程序中的某些对象发出果是向程序中的某些对象发出消息消息消息消息,然后这些对,然后这些对,然后这些对,然后这些对象调用相应的象调用相应的象调用相应的象调用相应的消息处理函数消息处理函数消息处理函数消息处理函数来完成特定的操作。来完成特定的操作。来完成特定的操作。来完成特定的操作。WindowsWindows应用程序最大的特点就是程序
3、没有固定应用程序最大的特点就是程序没有固定应用程序最大的特点就是程序没有固定应用程序最大的特点就是程序没有固定的流程,而只是针对某个事件的处理有特定的子的流程,而只是针对某个事件的处理有特定的子的流程,而只是针对某个事件的处理有特定的子的流程,而只是针对某个事件的处理有特定的子流程,流程,流程,流程,WindowsWindows应用程序就是由许多这样的子流应用程序就是由许多这样的子流应用程序就是由许多这样的子流应用程序就是由许多这样的子流程构成的。程构成的。程构成的。程构成的。3Windows应用程序工作原理 WindowsWindows应用程序在本质上是面向对象的。程序应用程序在本质上是面向
4、对象的。程序应用程序在本质上是面向对象的。程序应用程序在本质上是面向对象的。程序提供给用户界面的可视对象在程序的内部一般是提供给用户界面的可视对象在程序的内部一般是提供给用户界面的可视对象在程序的内部一般是提供给用户界面的可视对象在程序的内部一般是一个对象,用户对可视对象的操作通过事件驱动一个对象,用户对可视对象的操作通过事件驱动一个对象,用户对可视对象的操作通过事件驱动一个对象,用户对可视对象的操作通过事件驱动模式触发相应对象的可用方法。模式触发相应对象的可用方法。模式触发相应对象的可用方法。模式触发相应对象的可用方法。用 户 界 面用 户Windows 系 统操作事件消息程序中的对象调用特
5、定消息处理函数4窗口 窗口是窗口是窗口是窗口是WindowsWindows应用程序基本的操作单元,是应应用程序基本的操作单元,是应应用程序基本的操作单元,是应应用程序基本的操作单元,是应用程序与用户之间交互的接口环境,也是系统管用程序与用户之间交互的接口环境,也是系统管用程序与用户之间交互的接口环境,也是系统管用程序与用户之间交互的接口环境,也是系统管理应用程序的基本单位。理应用程序的基本单位。理应用程序的基本单位。理应用程序的基本单位。编写一个编写一个编写一个编写一个WindowsWindows应用程序,首先必须建立一个应用程序,首先必须建立一个应用程序,首先必须建立一个应用程序,首先必须建
6、立一个或多个窗口,而应用程序的运行过程就是窗口内或多个窗口,而应用程序的运行过程就是窗口内或多个窗口,而应用程序的运行过程就是窗口内或多个窗口,而应用程序的运行过程就是窗口内部、窗口与窗口之间、窗口与系统之间进行数据部、窗口与窗口之间、窗口与系统之间进行数据部、窗口与窗口之间、窗口与系统之间进行数据部、窗口与窗口之间、窗口与系统之间进行数据处理或数据交换的过程。处理或数据交换的过程。处理或数据交换的过程。处理或数据交换的过程。5消息 在在Windows程序设计中,消息是个极为重程序设计中,消息是个极为重要的概念,用户通过窗口界面的各种操作要的概念,用户通过窗口界面的各种操作最后都转化为发送到程
7、序中的对象的各种最后都转化为发送到程序中的对象的各种消息,下面介绍一些在消息,下面介绍一些在Windows程序设计程序设计中最常用的消息。中最常用的消息。6消息 窗口消息窗口消息WM_CREATEWM_CREATEWM_DESTROYWM_DESTROYWM_CLOSEWM_CLOSE键盘消息键盘消息WM_CHARWM_CHARWM_KEYDOWNWM_KEYDOWNWM_KEYUP WM_KEYUP 7消息 鼠标消息鼠标消息WM_MOUSEMOVEWM_MOUSEMOVEWM_LBUTTONDOWNWM_LBUTTONDOWNWM_LBUTTONUPWM_LBUTTONUPWM_LBUTTO
8、NDBCLICKWM_LBUTTONDBCLICKWM_RBUTTONDOWNWM_RBUTTONDOWNWM_RBUTTONUPWM_RBUTTONUPWM_RBUTTONDBCLICKWM_RBUTTONDBCLICK8Windows应用程序的基本结构 窗口消息(窗口状态)窗口消息(窗口状态)WM_MOVEWM_MOVEWM_SIZEWM_SIZEWM_PAINTWM_PAINT焦点消息焦点消息WM_SETFOCUSWM_SETFOCUSWM_KILLFOCUSWM_KILLFOCUS定时器消息定时器消息WM_TIMERWM_TIMER9Windows应用程序的基本结构 下面以一个最简单的
9、下面以一个最简单的Windows程序为程序为例来说明其基本结构。例来说明其基本结构。在在Visual C+中新建一个中新建一个Win32 Application的程序,选择建立一个的程序,选择建立一个A simple Win32 application程序程序 10Visual C+和MFC Visual C+Visual C+作为一个功能非常强大的可视化应用作为一个功能非常强大的可视化应用作为一个功能非常强大的可视化应用作为一个功能非常强大的可视化应用程序开发工具,是计算机界公认的最优秀的应用程序开发工具,是计算机界公认的最优秀的应用程序开发工具,是计算机界公认的最优秀的应用程序开发工具,是
10、计算机界公认的最优秀的应用开发工具之一。开发工具之一。开发工具之一。开发工具之一。Visual C+6.0 Visual Studio 2005/2008 Visual C+6.0 Visual Studio 2005/2008Visual C+Visual C+的核心是的核心是的核心是的核心是MicrosoftMicrosoft基础类库,即通常基础类库,即通常基础类库,即通常基础类库,即通常所说的所说的所说的所说的MFC(Microsoft Foundation Class)MFC(Microsoft Foundation Class)。11MSDN Library帮助工具 使用使用使用使用
11、Visual C+Visual C+编程,就必须学会使用编程,就必须学会使用编程,就必须学会使用编程,就必须学会使用MSDN MSDN LibraryLibrary这个工具。这个工具。这个工具。这个工具。MSDNMSDN库提供的庞大信息集几乎涉及到微软编程库提供的庞大信息集几乎涉及到微软编程库提供的庞大信息集几乎涉及到微软编程库提供的庞大信息集几乎涉及到微软编程工具和工具和工具和工具和Win32Win32编程的每个方面,它包含了成千上编程的每个方面,它包含了成千上编程的每个方面,它包含了成千上编程的每个方面,它包含了成千上万的主题,这些主题讨论了从万的主题,这些主题讨论了从万的主题,这些主题讨
12、论了从万的主题,这些主题讨论了从Visual C+Visual C+到到到到Visual J+Visual J+、从、从、从、从MFCMFC到到到到ActiveXActiveX的每件事情。的每件事情。的每件事情。的每件事情。MSDNMSDN中所包括信息的完整性确实让人吃惊。中所包括信息的完整性确实让人吃惊。中所包括信息的完整性确实让人吃惊。中所包括信息的完整性确实让人吃惊。12理解Visual C+的工程 Visual C+Visual C+作为一种程序设计语言,它同时也是作为一种程序设计语言,它同时也是作为一种程序设计语言,它同时也是作为一种程序设计语言,它同时也是一个集成开发工具,提供了软
13、件代码自动生成和一个集成开发工具,提供了软件代码自动生成和一个集成开发工具,提供了软件代码自动生成和一个集成开发工具,提供了软件代码自动生成和可视化的资源编辑功能。在使用可视化的资源编辑功能。在使用可视化的资源编辑功能。在使用可视化的资源编辑功能。在使用Visual C+Visual C+开发开发开发开发应用程序的过程中,系统为我们生成了大量的各应用程序的过程中,系统为我们生成了大量的各应用程序的过程中,系统为我们生成了大量的各应用程序的过程中,系统为我们生成了大量的各种类型的文件。种类型的文件。种类型的文件。种类型的文件。13使用MFC AppWizardVisual C+Visual C+
14、是一种功能强大的通用程序设计语言,是一种功能强大的通用程序设计语言,是一种功能强大的通用程序设计语言,是一种功能强大的通用程序设计语言,它提供了各种向导和工具帮助我们来实现所需的它提供了各种向导和工具帮助我们来实现所需的它提供了各种向导和工具帮助我们来实现所需的它提供了各种向导和工具帮助我们来实现所需的功能,在一定程度上实现了软件的自动生成和可功能,在一定程度上实现了软件的自动生成和可功能,在一定程度上实现了软件的自动生成和可功能,在一定程度上实现了软件的自动生成和可视化编程。视化编程。视化编程。视化编程。AppWizardAppWizard工具的作用是帮助我们一步步地生成工具的作用是帮助我们
15、一步步地生成工具的作用是帮助我们一步步地生成工具的作用是帮助我们一步步地生成一个新的应用程序,并且自动生成应用程序所需一个新的应用程序,并且自动生成应用程序所需一个新的应用程序,并且自动生成应用程序所需一个新的应用程序,并且自动生成应用程序所需的基本代码。的基本代码。的基本代码。的基本代码。14MFC程序结构分析 CTestApp类处理消息CMainFrame类CTestView类CTestDoc类消息消息消息文档父类消息15MFC绘图的基本知识设备描述表设备描述表(device context)的概念的概念 设备描述表实际上是一种设备描述表实际上是一种Windows的的数据结构,它保存了设备
16、(打印机、屏幕数据结构,它保存了设备(打印机、屏幕等)的绘图属性和绘图函数。等)的绘图属性和绘图函数。围绕设备描述表,围绕设备描述表,MFC还提供了一系列与还提供了一系列与其配合使用的绘图工具对象,这其中包括:其配合使用的绘图工具对象,这其中包括:画笔对象、刷子对象以及字体对象等等。画笔对象、刷子对象以及字体对象等等。16窗口、客户区和非客户区的概念窗口是窗口是窗口是窗口是WindowsWindows应用程序基本的操作单元,是其运应用程序基本的操作单元,是其运应用程序基本的操作单元,是其运应用程序基本的操作单元,是其运行及与用户进行交互的基本平台。行及与用户进行交互的基本平台。行及与用户进行交
17、互的基本平台。行及与用户进行交互的基本平台。屏幕输出的目标一般都是窗口内的客户区,它不包屏幕输出的目标一般都是窗口内的客户区,它不包屏幕输出的目标一般都是窗口内的客户区,它不包屏幕输出的目标一般都是窗口内的客户区,它不包括窗口的边框、滚动条、状态条、工具条、菜单栏括窗口的边框、滚动条、状态条、工具条、菜单栏括窗口的边框、滚动条、状态条、工具条、菜单栏括窗口的边框、滚动条、状态条、工具条、菜单栏和标题栏。可以接受无论是图形、文本、位图、还和标题栏。可以接受无论是图形、文本、位图、还和标题栏。可以接受无论是图形、文本、位图、还和标题栏。可以接受无论是图形、文本、位图、还是其他类型的数据(例如是其他
18、类型的数据(例如是其他类型的数据(例如是其他类型的数据(例如OLEOLE对象)。对象)。对象)。对象)。窗口内除客户区之外的区域即为非客户区。窗口内除客户区之外的区域即为非客户区。窗口内除客户区之外的区域即为非客户区。窗口内除客户区之外的区域即为非客户区。17绘图类MFCMFC提供了不同类型的设备描述表的类(绘图提供了不同类型的设备描述表的类(绘图提供了不同类型的设备描述表的类(绘图提供了不同类型的设备描述表的类(绘图类):类):类):类):CDCCDC、CPaintDCCPaintDC、CClientDCCClientDC、CWindowDCCWindowDC等。其中等。其中等。其中等。其中
19、CDCCDC类是类是类是类是MFCMFC绘图类的绘图类的绘图类的绘图类的根类,其它的绘图类都是根类,其它的绘图类都是根类,其它的绘图类都是根类,其它的绘图类都是CDCCDC类的派生类。类的派生类。类的派生类。类的派生类。CDCCDC类包含了绘图所需的所有成员函数。其它类包含了绘图所需的所有成员函数。其它类包含了绘图所需的所有成员函数。其它类包含了绘图所需的所有成员函数。其它的派生类,都仅仅是构造函数和析构函数的不的派生类,都仅仅是构造函数和析构函数的不的派生类,都仅仅是构造函数和析构函数的不的派生类,都仅仅是构造函数和析构函数的不同。同。同。同。18绘图类的引用方法一般情况下,应用程序的绘图工
20、作都要在视图一般情况下,应用程序的绘图工作都要在视图一般情况下,应用程序的绘图工作都要在视图一般情况下,应用程序的绘图工作都要在视图(ViewView)类中进行。)类中进行。)类中进行。)类中进行。由由由由AppWizardAppWizard生成的程序中,有一个视图类的成生成的程序中,有一个视图类的成生成的程序中,有一个视图类的成生成的程序中,有一个视图类的成员函数员函数员函数员函数OnDrawOnDraw,自动实现了在视图类中引用,自动实现了在视图类中引用,自动实现了在视图类中引用,自动实现了在视图类中引用CDCCDC类,这是由类,这是由类,这是由类,这是由MFCMFC程序内部的一个特殊机制
21、实程序内部的一个特殊机制实程序内部的一个特殊机制实程序内部的一个特殊机制实现的。当视图窗口绘制或重绘制(窗口刷新消息现的。当视图窗口绘制或重绘制(窗口刷新消息现的。当视图窗口绘制或重绘制(窗口刷新消息现的。当视图窗口绘制或重绘制(窗口刷新消息WM_PAINTWM_PAINT)时,都要调用)时,都要调用)时,都要调用)时,都要调用OnDrawOnDraw函数。函数。函数。函数。19绘图类的引用方法在在在在testView.cpptestView.cpp文件中可以找到文件中可以找到文件中可以找到文件中可以找到OnDrawOnDraw函数,其代码:函数,其代码:函数,其代码:函数,其代码:/CTes
22、tView drawing/CTestView drawingvoid 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对象的指针对象的指针对象的指针对象的指针可以通过可以通过
23、可以通过可以通过pDCpDC指针调用指针调用指针调用指针调用CDCCDC类的函数进行绘图。类的函数进行绘图。类的函数进行绘图。类的函数进行绘图。20绘图类的引用方法 在视图窗口以外的窗口(比如对话框)中绘制图形,在视图窗口以外的窗口(比如对话框)中绘制图形,在视图窗口以外的窗口(比如对话框)中绘制图形,在视图窗口以外的窗口(比如对话框)中绘制图形,就需要调用窗口类的就需要调用窗口类的就需要调用窗口类的就需要调用窗口类的WM_PAINTWM_PAINT消息处理函数消息处理函数消息处理函数消息处理函数OnPaintOnPaint来来来来绘制或重画窗口,该函数中必须生成设备描述表类绘制或重画窗口,该
24、函数中必须生成设备描述表类绘制或重画窗口,该函数中必须生成设备描述表类绘制或重画窗口,该函数中必须生成设备描述表类CPaintDCCPaintDC对象才能绘图,其代码示例如下:对象才能绘图,其代码示例如下:对象才能绘图,其代码示例如下:对象才能绘图,其代码示例如下:void CTestDialog:OnPaint()void CTestDialog:OnPaint()/Device context for painting/Device context for paintingCPaintDC pdc(this);CPaintDC pdc(this);/用户在此添加代码。用户在此添加代码。用户
25、在此添加代码。用户在此添加代码。21绘图类的引用方法 对于在对于在对于在对于在OnDrawOnDraw和和和和OnPaintOnPaint之外的函数中绘制之外的函数中绘制之外的函数中绘制之外的函数中绘制图形,必须生成设备描述表类图形,必须生成设备描述表类图形,必须生成设备描述表类图形,必须生成设备描述表类CClientDCCClientDC对象才对象才对象才对象才能绘图,其代码示例如下:能绘图,其代码示例如下:能绘图,其代码示例如下:能绘图,其代码示例如下:void CTestView:FunctionName()void CTestView:FunctionName()/Device con
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 制图 VC 绘图
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内