面向对象程序设计技术C++课件第10章

上传人:wkd****90 文档编号:241845338 上传时间:2024-07-29 格式:PPT 页数:26 大小:96.01KB
返回 下载 相关 举报
面向对象程序设计技术C++课件第10章_第1页
第1页 / 共26页
面向对象程序设计技术C++课件第10章_第2页
第2页 / 共26页
面向对象程序设计技术C++课件第10章_第3页
第3页 / 共26页
点击查看更多>>
资源描述
第第10章章 单文档应用程序设计单文档应用程序设计本章主要内容本章主要内容n n创建单文档应用程序 n n输入输出处理 n n菜单 n n滚动条 n n工具栏和状态栏 n n对话框和控件 2面向对象技术与Visual C+-第10章创建单文档应用程序创建单文档应用程序 n nMFC的文档/视图结构将Windows应用程序的功能划分在不同的类中。n n利用MFC提供的运行机制和消息传递机制,构成应用程序的类通过传递消息、调用接口函数,共同完成程序的功能。3面向对象技术与Visual C+-第10章AppWizard向导创建的类和文件向导创建的类和文件 n nAppWizard向导为生成的派生类创建单独的源文件,缺省情况下,类名和类源文件名是基于项目名的(可以在AppWizard向导创建应用程序过程中指定其他名称)。n nAppWizard向导为单文档应用程序创建4个派生类和其它一些文件。这4个类分别是文档类、视图类、主框架窗口类和应用程序类。4面向对象技术与Visual C+-第10章应用程序的运行机制应用程序的运行机制 n nMFC应用程序有自己特殊的运行机制,下面以WinHello程序为例,列出应用程序的执行过程。n n用用CWinAppCWinApp的构造函数;的构造函数;n n程序入口函数程序入口函数WinMainWinMain接受控制;接受控制;n nWinMainWinMain调用应用程序类的调用应用程序类的InitInstanceInitInstance函数;函数;n nWinMainWinMain进入消息循环;进入消息循环;n nWinMainWinMain退出,程序中止。退出,程序中止。5面向对象技术与Visual C+-第10章消息处理机制消息处理机制 n nMFCMFC应用程序与其他任何应用程序与其他任何 Windows Windows 程序一样,也使用消息程序一样,也使用消息驱动机制,但驱动机制,但 MFC MFC 提供的消息处理机制使得消息的处理更提供的消息处理机制使得消息的处理更加容易。加容易。n nMFCMFC中消息可以分为三类:中消息可以分为三类:n nWindows Windows 消息:包括以消息:包括以 WM_WM_开头的消息,但开头的消息,但 WM_COMMAND WM_COMMAND 除外。除外。WindowsWindows消息由窗口和视图处理。这种消息通常附带一些参数传递给消息由窗口和视图处理。这种消息通常附带一些参数传递给处理函数,这些参数为处理函数正确地处理消息提供了必要的信息。处理函数,这些参数为处理函数正确地处理消息提供了必要的信息。n n控件通知消息:当控件的状态发生改变控件通知消息:当控件的状态发生改变(例如用户利用利用控件进行例如用户利用利用控件进行输入输入)时,控件就会向其父窗口发送控件通知消息。时,控件就会向其父窗口发送控件通知消息。MFCMFC对控件通知对控件通知消息的传递方式与其他以消息的传递方式与其他以WM_WM_开头的开头的 Windows Windows 消息一样,但消息一样,但 BN_CLICKED BN_CLICKED 是个例外,该消息的传递方式与命令消息的传递机制是个例外,该消息的传递方式与命令消息的传递机制一样。一样。n n命令消息:包括来自于菜单、工具栏中的按钮和加速键等用户界面对命令消息:包括来自于菜单、工具栏中的按钮和加速键等用户界面对象的象的WM_COMMAND WM_COMMAND 通知消息。通知消息。6面向对象技术与Visual C+-第10章 输入输出处理输入输出处理 n n输入输出处理是应用程序最基本的功能。n nWindows应用程序通过GDI提供的绘图函数在窗口的客户区输出数据,通过对键盘消息和鼠标消息的响应,完成对用户输入的处理。7面向对象技术与Visual C+-第10章文本输出文本输出 n n文本输出函数 n n键盘 n n字符消息 n n鼠标 8面向对象技术与Visual C+-第10章虚拟键代码虚拟键代码 n n键盘类型根据语言或国家的不同而不同,为了键盘类型根据语言或国家的不同而不同,为了避免依赖于特定国家的键盘布局避免依赖于特定国家的键盘布局虚虚虚虚拟键拟键代代代代码码Windows Windows 标识标识符符键盘键盘VK_INSERTVK_INSERTInsertInsert(插入插入键键)VK_LEFTVK_LEFT 左箭左箭头键头键VK_NEXTVK_NEXTPage DownPage Down键键VK_BACKVK_BACKBackspaceBackspace键键VK_RETURNVK_RETURNEnterEnter键键9面向对象技术与Visual C+-第10章鼠标消息鼠标消息 n n当用户移动鼠标或释放松开鼠标按钮时,将产生当用户移动鼠标或释放松开鼠标按钮时,将产生鼠标消息。鼠标消息。n n鼠标消息可以分成两类:客户区鼠标消息和非客鼠标消息可以分成两类:客户区鼠标消息和非客户区鼠标消息。户区鼠标消息。n n非客户区包括窗口的边界、标题栏、菜单、滚动非客户区包括窗口的边界、标题栏、菜单、滚动条、最大化最小化按钮。条、最大化最小化按钮。n n客户区鼠标消息指的是鼠标在这些区域的操作而客户区鼠标消息指的是鼠标在这些区域的操作而产生的消息。这种消息一般由系统处理。应用程产生的消息。这种消息一般由系统处理。应用程序主要处理鼠标在客户区的操作而产生的消息。序主要处理鼠标在客户区的操作而产生的消息。10面向对象技术与Visual C+-第10章菜单菜单 n n菜单(Menu)以可视的方式提供了对应用程序功能的选择,是用户与应用程序之间进行交互的主要方式之一。11面向对象技术与Visual C+-第10章菜单简介菜单简介 n n菜单主要有弹出式和下拉式两种。n n弹出式菜单可以出现在屏幕的任何位置,是为弹出式菜单可以出现在屏幕的任何位置,是为了响应鼠标右键按钮而激活弹出式菜单。了响应鼠标右键按钮而激活弹出式菜单。n n下拉式菜单可以看成由一个顶层菜单和弹出式下拉式菜单可以看成由一个顶层菜单和弹出式菜单装配而成。当选择顶层菜单项时,下拉出菜单装配而成。当选择顶层菜单项时,下拉出一个子菜单,子菜单中是具体的菜单项。在子一个子菜单,子菜单中是具体的菜单项。在子菜单项中选择时,还可以再下拉出另一个子菜菜单项中选择时,还可以再下拉出另一个子菜单,形成级联菜单。单,形成级联菜单。12面向对象技术与Visual C+-第10章菜单的建立和实现菜单的建立和实现 n n菜单编辑器的使用。n n为程序加入菜单的操作分为以下几步:n n通过菜单编辑器生成菜单界面通过菜单编辑器生成菜单界面 ;n n建立菜单项和消息处理函数的映射;建立菜单项和消息处理函数的映射;n n在处理函数中添加菜单项功能代码。在处理函数中添加菜单项功能代码。13面向对象技术与Visual C+-第10章滚动条滚动条 n n滚动功能使用户可以阅读和编辑大于视图窗口的任何东西-无论是文本、表格、数据库记录还是图像。n n只要它所需的空间超出了客户区域所能提供的空间,就可以使用滚动条。14面向对象技术与Visual C+-第10章在程序中加入滚动功能在程序中加入滚动功能 n nCScrollView是从CView类派生的专用视图类。从CScrollView类派生的视图类自动将滚动条加入视图窗口,并提供了支持滚动操作的大多数代码。n n所有的GDI函数都使用逻辑坐标,Windows将GDI函数中指定逻辑坐标映射为设备坐标。15面向对象技术与Visual C+-第10章在程序中实现分割功能 n n动让用户阅读超过窗口的长文档,但用户也只能动让用户阅读超过窗口的长文档,但用户也只能看文档的某一部分,如果用户想同时阅读文档中看文档的某一部分,如果用户想同时阅读文档中相隔很远的部分,就只能同时打开两个窗口,分相隔很远的部分,就只能同时打开两个窗口,分别滚动到相应的位置阅读。别滚动到相应的位置阅读。n nWindowsWindows提供窗口分割功能,实现同时阅读长文提供窗口分割功能,实现同时阅读长文档的不同部分。档的不同部分。n n在窗口的垂直滚动条的上部和水平滚动条的底部,在窗口的垂直滚动条的上部和水平滚动条的底部,存在一个分割框区域,双击分割框或拖动分割框存在一个分割框区域,双击分割框或拖动分割框到所需的位置,窗口被垂直或水平地分成两个独到所需的位置,窗口被垂直或水平地分成两个独立的窗口,被分割后的窗口称为面板立的窗口,被分割后的窗口称为面板,用以显示同用以显示同一文档或图形的不同部分。一文档或图形的不同部分。16面向对象技术与Visual C+-第10章工具栏和状态栏工具栏和状态栏 n n工具栏和状态栏是Widows应用程序中常见的用户界面。n n工具栏是一种快捷操作的工具,常用的命令通常放在工具栏中,方便操作。n n而状态栏则用于显示目前程序的执行状态和说明。17面向对象技术与Visual C+-第10章工具栏的实现工具栏的实现 n n具栏包含一系列的位图按钮,通常情况下,单击按钮等价于从菜单中选择相应的菜单项。n n工具栏可以停靠在父窗口的顶部,也可以停靠在父窗口的任何靠边的位置,或者脱离父窗口,移动到自己的框架窗口内。n n停靠工具栏(Docking Toolbars)指的是和父窗口相连的工具栏。与之相对就就是浮动工具栏(Floating Toolbars)。18面向对象技术与Visual C+-第10章n nToolbarDemoToolbarDemo程序的图形菜单有直线、矩形和圆形三种选程序的图形菜单有直线、矩形和圆形三种选择,相应的,在工具栏中需要建立这三种按钮。具体操作择,相应的,在工具栏中需要建立这三种按钮。具体操作步骤如下:步骤如下:n n打开工具栏编辑器,修改打开工具栏编辑器,修改AppWizardAppWizard向导生成的预定义工具栏。在工向导生成的预定义工具栏。在工具栏面板中删除向导生成的缺省按钮,只留下一个空白按钮。用鼠标具栏面板中删除向导生成的缺省按钮,只留下一个空白按钮。用鼠标将按钮拖出工具栏面板就删除该按钮。将按钮拖出工具栏面板就删除该按钮。n n创建直线按钮。选择图形工具栏中的直线,在按钮绘制区域从左上角创建直线按钮。选择图形工具栏中的直线,在按钮绘制区域从左上角到右下角画直线。完成后,双击生成的直线按钮,弹出到右下角画直线。完成后,双击生成的直线按钮,弹出Toolbar Button Toolbar Button PropertiesProperties对话框。在对话框。在Toolbar Button PropertiesToolbar Button Properties对话框中设置按钮的对话框中设置按钮的IDID(标识符)以及标识符)以及PromptPrompt(提示信息)。在提示信息)。在IDID框中,输入框中,输入ID_LINEID_LINE。n n一旦编辑完第一个按钮的内容,在它右面会出现一个新的空白按钮。一旦编辑完第一个按钮的内容,在它右面会出现一个新的空白按钮。单击这个空白按钮,继续编辑下一个按钮。单击这个空白按钮,继续编辑下一个按钮。n n创建矩形按钮。选择图形工具条中的矩形,在空白按钮中绘出一个矩创建矩形按钮。选择图形工具条中的矩形,在空白按钮中绘出一个矩形。按钮的形。按钮的IDID取值为取值为ID_RECTANGLEID_RECTANGLE。n n按以上步骤,再添加一个圆形按钮。按以上步骤,再添加一个圆形按钮。IDID取值为取值为ID_CIRCLEID_CIRCLE。完成工具完成工具栏的设计。栏的设计。19面向对象技术与Visual C+-第10章状态栏的实现 n n状态栏一般都停靠在主框架窗口的底部,包含多个面板,用做文本输出或指示器,而且也无须改变其位置。n n如果在AppWizard向导的Step 4 对话框中选择了Initial status bar 项,AppWizard向导生成的应用程序就拥有一个缺省的状态栏。n n设计状态栏的任务是:定义提示信息,建立特定状态和提示信息的联系。20面向对象技术与Visual C+-第10章对话框和控件对话框和控件 n n对话框用于显示消息和取得用户数据,是对话框用于显示消息和取得用户数据,是WindowsWindows应用程序中最常用的用户界面。对话框应用程序中最常用的用户界面。对话框作为一个容器,通常包括各种控件,如编辑框、作为一个容器,通常包括各种控件,如编辑框、按钮、组合框和列表框等。按钮、组合框和列表框等。n n用户通过在编辑框中输入信息,通过对列表框、用户通过在编辑框中输入信息,通过对列表框、单选框等的选择,为应用程序提供必要的数据。单选框等的选择,为应用程序提供必要的数据。n n对话框有两种类型:模式对话框和非模式对话框。对话框有两种类型:模式对话框和非模式对话框。这两种形式的对话框在打开和关闭方式上存在区这两种形式的对话框在打开和关闭方式上存在区别。别。MFCMFC的的Dialog Dialog 类是对话框类的基类,提供了类是对话框类的基类,提供了对话框的打开、关闭和管理对话框及对话框中的对话框的打开、关闭和管理对话框及对话框中的控件等功能。控件等功能。21面向对象技术与Visual C+-第10章控件简介控件简介 n n控件是控件是Windows Windows 应用程序和用户进行交互的常用应用程序和用户进行交互的常用手段。在手段。在Visual C+Visual C+中,控件可以分成三类:中,控件可以分成三类:Windows Windows 标准控件、标准控件、ActiveX ActiveX 控件和其他控件和其他 MFC MFC 控控件类。件类。n nWindows Windows 标准控件由标准控件由 Windows Windows 操作系统提供,包操作系统提供,包括按钮、复选框、列表框括按钮、复选框、列表框 和静态文本等。和静态文本等。n n控件一般成组地放置在特殊的窗口中,这种特殊控件一般成组地放置在特殊的窗口中,这种特殊窗口或者是对话框或者是表单(窗口或者是对话框或者是表单(FormForm)。)。22面向对象技术与Visual C+-第10章控件控件描述描述图图形控件形控件显显示示图标图标静静态态文本控件文本控件常用于常用于为为其他控件提供其他控件提供标签标签编辑编辑框框允允许许用用户户的的输输入,并提供完整的入,并提供完整的编辑编辑能力能力组组框框视觉视觉上将控件分上将控件分组组(典型情况下是一系列的(典型情况下是一系列的单选钮单选钮、复、复选选框)框)多格式文本多格式文本编辑编辑提供可提供可设设置字符和段落格式的文本置字符和段落格式的文本编辑编辑按按钮钮用于立即用于立即执执行某些命令行某些命令复复选选框框用于用于选择选择多个相互独立的多个相互独立的选项选项单选单选按按钮钮用于用于选择选择一一组组相互排斥的相互排斥的选项选项之一之一列表框列表框用于以列表的形式用于以列表的形式为为用用户户提供提供选择选择(如文件名、字体)(如文件名、字体)水平水平滚动滚动条条提供水平提供水平滚动滚动功能功能垂直垂直滚动滚动条条提供垂直提供垂直滚动滚动功能功能翻翻动动按按钮钮用于用于递递增增递递减数减数值值或移或移动动某个某个项项目目23面向对象技术与Visual C+-第10章MFCMFC类类管理的控件管理的控件类类型型CStaticCStatic静静态态文本文本CButtonCButton按按钮钮CEditCEdit编辑编辑框框ClistBoxClistBox列表框列表框CScrollBarCScrollBar滚动滚动条:垂直条:垂直绘绘水平水平CSpinButtonCtrlCSpinButtonCtrl上下按上下按钮钮控件控件24面向对象技术与Visual C+-第10章模式对话框 n n模式对话框模式对话框(Modal Dialog)Modal Dialog)的特点是:对话框始的特点是:对话框始终位于应用程序的最顶层,在对话框被关闭之前,终位于应用程序的最顶层,在对话框被关闭之前,用户不能选择应用程序的其他功能。应用程序的用户不能选择应用程序的其他功能。应用程序的大部分对话框都是模式对话框。大部分对话框都是模式对话框。n n对话框的建立可分为如下几步:对话框的建立可分为如下几步:n n通过对话框编辑器设计对话框的界面通过对话框编辑器设计对话框的界面n n生成管理对话框的类生成管理对话框的类n n定义成员变量定义成员变量n n定义消息处理定义消息处理n n对话框的显示对话框的显示25面向对象技术与Visual C+-第10章非模式对话框 n n非模式对话框和模式对话框的主要区别是:非模式对话框和模式对话框的主要区别是:n n非模式对话类的实例声明为全局对象或用非模式对话类的实例声明为全局对象或用newnew操作符生操作符生成。因为显示函数返回后,非模式对话框通常还要继成。因为显示函数返回后,非模式对话框通常还要继续打开。续打开。n n非模式对话框的显示使用非模式对话框的显示使用CDialogCDialog:Create:Create函数而非函数而非CDialogCDialog:DoModalDoModal函数。函数。CDialogCDialog:Create:Create立即返回,但立即返回,但非模式对话框继续保持。非模式对话框继续保持。n n关闭非模态对话框使用关闭非模态对话框使用CWndCWnd:Destroy:Destroy函数而不是函数而不是EndDialogEndDialog函数。因而不能使用函数。因而不能使用MFCMFC为为OKOK按钮和按钮和CancelCancel按钮提供的缺省处理。需要自定义按钮提供的缺省处理。需要自定义OnCancleOnCancle消息处理消息处理函数处理非模式对话框的关闭,如果有函数处理非模式对话框的关闭,如果有OKOK按钮,还要按钮,还要定义定义OnOkOnOk函数消息处理函数。函数消息处理函数。26面向对象技术与Visual C+-第10章
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 生活常识


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!