06资源.ppt
《06资源.ppt》由会员分享,可在线阅读,更多相关《06资源.ppt(35页珍藏版)》请在冰豆网上搜索。
第第8章章资资源源本章主要内容n资源和资源文件n菜单的定义和使用n图标的制作和使用n位图的定义和使用8.1资源和资源文件资源和资源文件nnWindowsWindows应用程序把其用户界面(应用程序把其用户界面(应用程序把其用户界面(应用程序把其用户界面(UIUI,UserUserInterfaceInterface)所需要的诸如菜单、图标、位图、光标、)所需要的诸如菜单、图标、位图、光标、)所需要的诸如菜单、图标、位图、光标、)所需要的诸如菜单、图标、位图、光标、对话框、加速键、字符串、工具栏等一些数据都定义对话框、加速键、字符串、工具栏等一些数据都定义对话框、加速键、字符串、工具栏等一些数据都定义对话框、加速键、字符串、工具栏等一些数据都定义为资源为资源为资源为资源。
nn同一个应用程序在不同的应用场合对这些数据的要求同一个应用程序在不同的应用场合对这些数据的要求同一个应用程序在不同的应用场合对这些数据的要求同一个应用程序在不同的应用场合对这些数据的要求却是不同的却是不同的却是不同的却是不同的。
nn例如:
需要在全世界范围内发布的软件,例如:
需要在全世界范围内发布的软件,例如:
需要在全世界范围内发布的软件,例如:
需要在全世界范围内发布的软件,UIUI数据应数据应数据应数据应有不同的版本以适应不同国家民族对不同语言、图标有不同的版本以适应不同国家民族对不同语言、图标有不同的版本以适应不同国家民族对不同语言、图标有不同的版本以适应不同国家民族对不同语言、图标、光标和风格的需要。
软件应具有若干套、光标和风格的需要。
软件应具有若干套、光标和风格的需要。
软件应具有若干套、光标和风格的需要。
软件应具有若干套UIUI数据数据数据数据8.1资源和资源文件资源和资源文件nn把这些把这些把这些把这些UIUI数据统统编写在应用程序中是不合适的,因数据统统编写在应用程序中是不合适的,因数据统统编写在应用程序中是不合适的,因数据统统编写在应用程序中是不合适的,因为应用程序运行时可能只用到多套数据中的某一套,为应用程序运行时可能只用到多套数据中的某一套,为应用程序运行时可能只用到多套数据中的某一套,为应用程序运行时可能只用到多套数据中的某一套,甚至是部分数据。
甚至是部分数据。
甚至是部分数据。
甚至是部分数据。
nn应用程序应该只把需要的数据载入程序,而那些不用应用程序应该只把需要的数据载入程序,而那些不用应用程序应该只把需要的数据载入程序,而那些不用应用程序应该只把需要的数据载入程序,而那些不用或暂时不用的就让它们依然驻留在磁盘中备用或暂时不用的就让它们依然驻留在磁盘中备用或暂时不用的就让它们依然驻留在磁盘中备用或暂时不用的就让它们依然驻留在磁盘中备用。
nn对于这种数据就应该用不同的方式制作和保存,使它对于这种数据就应该用不同的方式制作和保存,使它对于这种数据就应该用不同的方式制作和保存,使它对于这种数据就应该用不同的方式制作和保存,使它们具有上述特点。
们具有上述特点。
们具有上述特点。
们具有上述特点。
WindowsWindows把这种类型的数据叫做资把这种类型的数据叫做资把这种类型的数据叫做资把这种类型的数据叫做资源。
源。
源。
源。
8.1资源和资源文件资源和资源文件nn这种数据有一个共同的特点:
这种数据有一个共同的特点:
在应用程序被启在应用程序被启动之后,它们一般仍然驻留在硬盘上的可执行动之后,它们一般仍然驻留在硬盘上的可执行文件之中,只有当应用程序需要它们时,才从文件之中,只有当应用程序需要它们时,才从可执行文件中读取相应的数据可执行文件中读取相应的数据。
8.1资源和资源文件资源和资源文件nn资源资源资源资源就是一种可供就是一种可供就是一种可供就是一种可供WindowsWindows应用程序利用,应用程序利用,应用程序利用,应用程序利用,可单独编辑,并可动态加载的数据可单独编辑,并可动态加载的数据可单独编辑,并可动态加载的数据可单独编辑,并可动态加载的数据。
nn为了产生资源数据,要求程序员提供两种文本:
为了产生资源数据,要求程序员提供两种文本:
为了产生资源数据,要求程序员提供两种文本:
为了产生资源数据,要求程序员提供两种文本:
nn资源头文件资源头文件资源头文件资源头文件Resource.hResource.h:
定义了各个资源在应用:
定义了各个资源在应用:
定义了各个资源在应用:
定义了各个资源在应用程序中的标识。
程序中的标识。
程序中的标识。
程序中的标识。
nn资源描述文件(资源脚本文件)工程名资源描述文件(资源脚本文件)工程名资源描述文件(资源脚本文件)工程名资源描述文件(资源脚本文件)工程名.rcrc:
描述各描述各描述各描述各资源的属性。
资源的属性。
资源的属性。
资源的属性。
n为了对不同的资源加以区别,所以必须为资源命为了对不同的资源加以区别,所以必须为资源命名标识符。
通常,这些名标识符。
通常,这些标识符要放在头文件标识符要放在头文件Resource.h中中。
为提高可读性,资源标识符遵为提高可读性,资源标识符遵循一定的命名规则:
循一定的命名规则:
nIDR_MAINFRAME代表主框架窗口所使用的资代表主框架窗口所使用的资源源,如菜单、图标等如菜单、图标等nIDD_ABOUTBOX代表代表关于关于对话框对话框8.1.1资源的头文件资源的头文件ResourceDialogMFC使用的资源标识符的前缀使用的资源标识符的前缀nnIDR_:
主菜单主菜单,工具栏和应用程序图标工具栏和应用程序图标nnIDD_:
对话框对话框nnIDC_:
控件和光标控件和光标nnIDS_:
字符串字符串nnIDP_:
消息框提示字符串消息框提示字符串nnID_:
菜单命令菜单命令IDR_MAINFRAMEMENUIDR_MAINFRAMETOOLBARIDR_MAINFRAMEICONnn描述资源的文件描述资源的文件描述资源的文件描述资源的文件叫做叫做叫做叫做资源脚本文件资源脚本文件资源脚本文件资源脚本文件,也叫做,也叫做,也叫做,也叫做资源描述文件资源描述文件资源描述文件资源描述文件。
它是一个文本文件,这个文。
它是一个文本文件,这个文。
它是一个文本文件,这个文。
它是一个文本文件,这个文件的名称一般与工程项目名称相同,扩展名件的名称一般与工程项目名称相同,扩展名件的名称一般与工程项目名称相同,扩展名件的名称一般与工程项目名称相同,扩展名为为为为.rcrc。
nn对于对于对于对于位图、图标、光标位图、图标、光标位图、图标、光标位图、图标、光标等这类复杂的等这类复杂的等这类复杂的等这类复杂的图形数图形数图形数图形数据据据据,要用另外的工具进行制作成单独的文件,要用另外的工具进行制作成单独的文件,要用另外的工具进行制作成单独的文件,要用另外的工具进行制作成单独的文件并保存在应用程序的并保存在应用程序的并保存在应用程序的并保存在应用程序的resres文件夹中,而文件夹中,而文件夹中,而文件夹中,而在资源在资源在资源在资源描述文件中只需说明它们的名字和存储位置描述文件中只需说明它们的名字和存储位置描述文件中只需说明它们的名字和存储位置描述文件中只需说明它们的名字和存储位置(路径)(路径)(路径)(路径)。
8.1.2资源描述文件资源描述文件标题图标、文档图片、工具条位图标题图标、文档图片、工具条位图标题图标、文档图片、工具条位图标题图标、文档图片、工具条位图8.2菜单菜单8.2.1资源描述文件的菜单部分资源描述文件的菜单部分8.2.2编辑现有的菜单编辑现有的菜单8.2.1资源描述文件的菜单部分nn一个菜单部分由三个层次组成:
一个菜单部分由三个层次组成:
nn菜单菜单菜单菜单nn子菜单子菜单子菜单子菜单nn菜单命令选项:
能产生消息并激活程序某些菜单命令选项:
能产生消息并激活程序某些菜单命令选项:
能产生消息并激活程序某些菜单命令选项:
能产生消息并激活程序某些功能。
功能。
功能。
功能。
1、菜单的定义、菜单的定义一个两级菜单的文本文件一个两级菜单的文本文件立即加载立即加载立即加载立即加载可丢弃可丢弃可丢弃可丢弃加下划线,热键加下划线,热键加下划线,热键加下划线,热键制表符制表符制表符制表符快捷键快捷键快捷键快捷键新建命令选项标识符新建命令选项标识符新建命令选项标识符新建命令选项标识符分隔符分隔符分隔符分隔符nn菜菜单单描描述述文文件件的的开开头头为为菜菜单单的的定定义义语语句句,菜单定义语句的格式为:
菜单定义语句的格式为:
标识符MEMU,载入特性选项定义菜单的关键字声明菜单被载入时特性nn菜单定义语句后面是一系列用菜单定义语句后面是一系列用BEGIN开开头,头,END结束的语句块。
结束的语句块。
nn最外层的最外层的BEGIN-END语句块描述的是总语句块描述的是总菜单,即菜单栏。
菜单栏其中的每个项菜单,即菜单栏。
菜单栏其中的每个项对应于一个子菜单。
对应于一个子菜单。
nn用用&定义菜单项的热键,子菜单后面小括定义菜单项的热键,子菜单后面小括号里的字符带下划线。
号里的字符带下划线。
nn子子菜菜单单(菜菜单单项项)是是总总菜菜单单的的一一个个选选项项,它它一一般般为为弹弹出出式式菜菜单单。
定定义义弹弹出出式式菜菜单单要要使使用用关关键键字字POPUP,定定义义子子菜菜单单的的语语句格式为:
句格式为:
POPUP“子菜单标题”,选项2子子菜单菜单nn菜菜菜菜单单单单中中中中可可可可以以以以向向向向应应应应用用用用程程程程序序序序发发发发出出出出消消消消息息息息的的的的选选选选项项项项叫叫叫叫做做做做命命命命令令令令选项,必须定义一个唯一的标识。
选项,必须定义一个唯一的标识。
选项,必须定义一个唯一的标识。
选项,必须定义一个唯一的标识。
nn描描描描述述述述一一一一个个个个菜菜菜菜单单单单命命命命令令令令选选选选项项项项需需需需要要要要使使使使用用用用关关关关键键键键字字字字MEMUITEMMEMUITEM。
MEMUITEMMEMUITEM“菜菜菜菜单单单单命命命命令令令令选选选选项项项项名名名名称称称称”,菜菜菜菜单单单单命命命命令令令令选选选选项标识符(项标识符(项标识符(项标识符(IDID),选项,选项,选项,选项选选选选中中中中任任任任何何何何一一一一个个个个菜菜菜菜单单单单命命命命令令令令选选选选项项项项时时时时,都都都都会会会会发发发发出出出出一一一一个个个个命命命命令令令令消消消消息息息息WM_COMMAND.WM_COMMAND.应应应应用用用用程程程程序序序序根根根根据据据据IDID来识别该消息来自哪个菜单命令选项。
来识别该消息来自哪个菜单命令选项。
来识别该消息来自哪个菜单命令选项。
来识别该消息来自哪个菜单命令选项。
3.菜单命令选项及其消息映射菜单命令选项及其消息映射nn在在定定义义菜菜单单命命令令选选项项消消息息映映射射时时,其其参参数数中中要要包包含含菜菜单单命命令令选选项项的的标标识识符符ID,同同时时也也要要包包含含该该选选项项所所对对应应的的消消息息响响应应函数函数。
菜单选项消息映射宏的格式是:
。
菜单选项消息映射宏的格式是:
ON_COMMAND(菜单命令选项的菜单命令选项的ID,消,消息响应函数名息响应函数名)8.2菜单菜单nn在使用在使用在使用在使用MFCAppWizardMFCAppWizard生成应用程序框架时,自生成应用程序框架时,自生成应用程序框架时,自生成应用程序框架时,自动提供了一个菜单。
动提供了一个菜单。
动提供了一个菜单。
动提供了一个菜单。
nn用户不需要编写菜单资源描述文件,而是在现有的用户不需要编写菜单资源描述文件,而是在现有的用户不需要编写菜单资源描述文件,而是在现有的用户不需要编写菜单资源描述文件,而是在现有的菜单资源描述文件(项目名菜单资源描述文件(项目名菜单资源描述文件(项目名菜单资源描述文件(项目名.rcrc文件)基础上进行修文件)基础上进行修文件)基础上进行修文件)基础上进行修改,形成满足自己要求的菜单。
改,形成满足自己要求的菜单。
改,形成