您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > VC++6.0入门【第四章】
第4章资源和资源编辑器精讲VC++集成开发环境提供了资源编辑器,支持窗口应用程序的可视化开发,自动生成和管理资源代码。本章将介绍VC++所支持的资源,及使用资源编辑器编辑资源的方法。学习了本章,你将学会资源编辑器的使用,在应用程序中操作菜单、工具栏和状态栏。4.1资源与资源编辑器4.1.1资源和资源符号资源作为一种界面成分,可以从中获取信息并在其中执行某些动作。VC++6.0可以处理的资源有加速键(Accelerator)、位图(Bitmap)、光标(Cursor)、对话框(DialogBox)、图标(Icon)、菜单(Menu)、串表(StringTable)、工具栏(Toolbar)和版本信息(VersionInformation)等。VC++在内部使用资源符号来标识资源,资源符号是映射到某个整数值的一串字符,是一种标识符。从而使资源能够以字符串的方式被引用。每当创建一个新的资源或资源对象时,系统就会为其提供一个默认的资源符号名称并赋一个整数值,该定义保存在resource.h文件中。DevelopStudio提供了资源符号的查看和编辑工具,使用菜单命令View-ResourceSymbol来打开资源符号浏览器ResourceSymbols对话框,如图4-1所示,列表中列出了当前项目正在使用的资源符号的名称和相应的整数值。若选中“Showread-onlysymbols”复选框,则只读状态和未被使用的资源符号也一并显示出来。图4-1ResourceSymbols对话框在资源符号浏览器ResourceSymbols对话框中,可以方便地新建、更改和删除资源符号,单击按钮“ViewUse”自动进入到某个资源对应的编辑器中。第4章MFC应用程序资源和资源编辑器112在同一项目中,资源符号不能重复。资源符号的命名通常带有描述性的前缀来表示所代表的资源或对象类型,表4-1是VC++6.0中提供的一些定义资源符号常用的前缀。表4-1资源符号定义的常用前缀类别资源符号前缀代表的资源或对象资源IDR_IDD_IDC_IDI_IDB_加速键或菜单及相关资源对话框资源光标资源图表资源位图资源菜单项命令控制IDM_ID_IDC_菜单项命令项控件字符串IDS_IDP_字符串表中的字符串消息框中使用的字符串资源符号的取值有一定的限制。资源(加速键、位图、光标、对话框、图标、菜单、串表、工具栏和版本信息)的符号值范围为十进制的0~32767,而资源控件(如对话框控件或串表中的串)的符号值范围为0~65535或0~32767。4.1.2资源编辑器DevelopStudio提供了功能强大、易于使用的资源编辑器,用于创建和修改应用程序的资源。使用资源编辑器,可以创建新的资源,修改、拷贝已有的资源,删除不再需要的资源。例如可以用加速键编辑器处理加速键表,用图形编辑器处理图形资源(工具栏、位图、光标和图标等),用对话编辑器处理对话框,用菜单编辑器处理菜单等等。创建或打开资源时,系统将自动打开相应的编辑器。1.创建资源如果要创建新的资源,选择Insert-Resourcre菜单命令,弹出InsertResourse对话框,如图4-2所示。ResourseType列表选择资源类型,然后单击“New”按钮。新创建的资源将加入到当前资源(.rc)文件中,相应的资源编辑器也会打开。例如插入一个新的Menu,菜单编辑器就会打开。第4章MFC应用程序资源和资源编辑器113图4-2InsertResourse对话框2.编辑资源VC++提供了可视化工具资源编辑器编辑资源,资源编辑器有很多公共操作。例如,你一旦学会了如何创建和打开一个对话框资源,你就能使用同样的步骤去创建和打开其它的资源。使用资源编辑器能够(1)查看资源(2)使用资源模板(3)导入和导出资源(4)查看和编辑属性页DeveloperStudio使用项目工作区的ResouceView面板统一组织和管理来查看资源,如图4-3所示。首次打开ResourceView面板时,系统自动压缩每个资源分类,可单击“+”标记来扩展每一分类。图4-3项目工作区窗口的ResourceView面板资源编辑器主要包括:(1)对话框编辑器(DialogEditor)(2)菜单编辑器(MenuEditor)第4章MFC应用程序资源和资源编辑器114(3)加速键编辑器(AcceleratorEditor)(4)工具栏编辑器(ToolbarEditor)(5)版本信息编辑器(VersionInformationEditor)(6)字符串编辑器(StringEditor)(7)图形编辑器(GraphicsEditor)下面对每一类编辑器的使用作简要介绍:(1)对话框编辑器使用对话框编辑器可以创建或编辑一个对话框模板或者对话框资源,如图4-4所示。常用操作包括:增加、删除和编辑控件改变Tab顺序布置控件位置测试一个对话框窗口图4-4对话框编辑器(2)菜单编辑器使用菜单可以在一个工程项目中直观,有组织地安排命令。菜单编辑器提供了创建和编辑窗口菜单的图形界面,使用菜单编辑器,可以创建标准菜单和菜单选项,为菜单或菜单选项定义热键、加速键和状态栏提示。也可以创建快捷菜单,以便用鼠标右按钮来执行要频繁使用的命令。建立菜单或菜单项后,可以用ClassWizard为菜单项映射函数并编写要执行的代码。Control工具栏Layout菜单对话框模板第4章MFC应用程序资源和资源编辑器115图4-5菜单编辑器如图4-5所示。双击任意一个菜单项,可以打开一个菜单项属性对话框,常用操作包括:创建标准菜单和命令创建弹出菜单命令设置快捷键、加速键和菜单命令项的状态栏消息移动菜单命令(3)加速键编辑器加速键表列出了窗口资源中加速键和相应的命令ID。通常,加速键所对应的命令,都对应着一个菜单命令。使用加速键编辑器可以维护加速键列表,如图4-6所示,常用操作包括:增加、删除、改变和浏览加速键列表浏览并改变加速键表资源ID将一个加速键与一个菜单命令相联系菜单项属性对话框增加新的菜单项第4章MFC应用程序资源和资源编辑器116图4-6加速键编辑器(4)工具栏编辑器工具栏编辑器可以帮助你创建工具栏资源,也可将位图转化为工具栏资源。工具栏编辑器的使用上很类似于画图工具,如图4-7所示,常用操作包括:创建工具栏和按钮将位图转化为工具栏资源创建、移动、和编辑工具栏按钮加速键属性对话框增加新的加速键第4章MFC应用程序资源和资源编辑器117图4-7工具栏编辑器对工具按钮的设置由两部分构成:一是使用图形工具栏编辑位图;二是在工具按钮属性对话框中输入工具按钮的ID。一般工具按钮的ID是一个已定义的菜单项的ID,也可以定义一个新的ID,但要对这个新定义的ID定义消息处理函数。添加一个工具按钮,只需对最后一个空白按钮做以上两部分操作,再将按钮拖到合适的位置。删除一个工具按钮,只需使用鼠标将按钮拖出工具栏,抛弃即可。通过鼠标的拖动操作,可以方便调整按钮在工具栏上的位置。(5)版本编辑器版本信息包括公司和产品的信息、语言、序列号、版权和商标的声明,版本信息编辑器帮助创建并方便地维护这些信息,如图4-8所示。例如:需要修改公司名称,可按照下列步骤:(a)在ResourceView中,双击版本信息资源(VS_VERSION_INFO)(b)在对象列表中找到项目:CompanyName(c)左键单击“CompanyName”,出现文本框,填入合适的内容。同样的步骤可以修改其他版本信息。工具栏真实大小的按钮编辑状态的按钮工具按钮属性对话框新的工具按钮第4章MFC应用程序资源和资源编辑器118图4-8版本信息编辑器(6)字符串编辑器字符串列表包括了一个应用程序中所有标识符的ID、数值和名称。例如,状态栏的提示。使用字符串编辑器可以创建或编辑一个字符串,如图4-9所示,常用操作包括:查找一个字符串记录增加一个字符串记录删除一个字符串记录移动一个字符串记录到另一个段移动一个字符串记录到另一个资源文件(*.rc)改变一个字符串的值或它的ID增加格式或特殊字符到一个字符串注意:不能创建一个空字符串表,如果创建了一个空的字符串表,DevelopStudio在退出的时候会自动删除。第4章MFC应用程序资源和资源编辑器119图4-9字符串编辑器(7)图形编辑器图形编辑器是用于画位图、图标和鼠标的工具,同时支持工具栏位图的创建,如图4-10所示。图4-10图形编辑器第4章MFC应用程序资源和资源编辑器1203.保存或删除资源从前面的讲述中可以知道,开发者使用可视化界面编辑资源的信息,由Developstudio自动保存在.rc和.h两个文件中。当使用资源编辑器修改了资源,在ResourceView中树形结构的根结点文件夹的最右边会出现‘*’,表示修改后还未存盘。保存操作是执行菜单命令File-SaveAll,保存后‘*’号将消失。要删除一个资源,只需在ResourceView的树目录中选中该资源的ID图标,直接单击“Delete”按键,该资源将从资源管理器中删除。4.1.3编辑器使用实例【例4-1】文本编辑器的实现。要求文本编辑器可以在视图窗口内接收键盘输入并编辑文本,能将文本存盘并从磁盘装入文本文件;具有撤消、选择、复制、剪切、粘贴、查找、替换等功能,基本上实现类似记事本的功能。同时需要修改该编辑器的程序图标。设计思路:MFC类库的CEditView类不仅提供了在视图中使用CEdit控件的功能,还提供了实现简单文本编辑器的功能,因此,只要在用AppWizard生成Exam4_1的基本框架时,选择从CEditView类派生应用程序的视图类CExam4_1View,就能生成文本编辑器的基本框架。根据对文本编辑器的要求,还须在“编辑”菜单下增加“全选”、“查找”、“查找下一个”、和“替换”4个菜单项。实现后的应用程序运行窗口如图4-11所示。图4-11实现的文本编辑器实现步骤:1.用AppWizard生成应用程序的基本框架(1)在VC集成开发平台,单击File菜单中的New菜单项,打开New对话框。(2)在New对话框中,选择Project标签,单击MFCApplication(EXE)。(3)在右边填写工程名称:Exam4_1,并确定工程文件保存位置。第4章MFC应用程序资源和资源编辑器121(4)单击“OK”按钮,在MFCAppWizard-Step1of6对话框中,选择应用程序的类型为SingleDocument。(5)连续单击5个“Next”按钮,接受向导默认设置,进入到MFCAppWizard-step6of6对话框中,在类的列表中选中CExam4_1View,在Baseclass下拉框中选择CEditView。(6)单击“Finish”按钮,显示NewProjectInformation对话框,单击“OK”按钮,回到集成开发平台。(7)选择Build菜单中的ExecuteExam4_1.exe菜单项,运行该应用程序。2.增加文本编辑器的菜单项(1)展开ResourceView标签中的Menu菜单资源,双击IDR_MAINFRAME,打开菜单编辑窗口。(2)在“编辑”菜单项底部依次加入“全选”、“查找”、“查找下一个”和“替换”菜单项,各菜单项的属性如表4-2所示。(3)在“全选”菜单项后,应插入一个分隔线,分隔线是一个特殊的菜单项,只要在属性窗口中选取Separator复选框即可,不用输入ID和Caption内容。表4-2菜单属性设置菜单ID菜单名(Caption)ID_EDIT_SELECT_ALL全选(&A)\tCtrl+AID_EDIT_FIND查找(&F)\tCtrl+FID_EDIT_REPEAT查找下一个(&N)\tF3ID_EDIT_REPLACE替换(&R)\tCtrl+H(4)最终在菜单编辑器完成的“编辑”菜单如图4-11所示,保存后重新运行程序。说明:一个菜单项与一个菜单ID相对应,经消息映射后与一条菜单消息相对应,选择一个菜单项系统将自动调用
本文标题:VC++6.0入门【第四章】
链接地址:https://www.777doc.com/doc-5936686 .html