MFC 教程 第08章 资源_第1页
MFC 教程 第08章 资源_第2页
MFC 教程 第08章 资源_第3页
MFC 教程 第08章 资源_第4页
MFC 教程 第08章 资源_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第8章章 资资 源源本章主要内容 n资源和资源文件 n菜单的定义和使用 n图标的制作和使用 n位图的定义和使用 8.1 资源和资源文件资源和资源文件nWindows应用程序把其界面所需要的诸如菜单、图标、位图、光标、对话框、加速键、字符串、工具栏等一些数据都定义为资源。n这种数据有一个共同的特点:在应用程序被启动之后,它们一般仍然驻留在硬盘上的可执行文件之中,只有当应用程序需要它们时,才从可执行文件中读取相应的数据 。n描述资源的文件叫做资源脚本文件,也叫做资源描述文件(常简称为资源文件)。它是一个文本文件,这个文件的名称一般与工程项目名称相同,扩展名为.rc。 n对于位图、图标等这类复杂的

2、图形数据,要用另外的工具进行制作成单独的文件并保存在应用程序的res文件夹中,而在资源脚本文件中只需说明它们的名字和存储位置。 n为了对不同的资源加以区别,所以必须为资源命名标识符。通常,这些标识符要放在头文件Resource.h中。 8.1 资源和资源文件资源和资源文件nMFC允许在资源描述文件中,以一个统一的标识符来标识主框架窗口所需的各种资源。这样,使用一个标识符就可以将所需要的资源一起装载到应用程序中了。例如:pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,/程序资源标识RUNTIME_CLASS(CMFCexp8_2Doc),R

3、UNTIME_CLASS(CMainFrame),RUNTIME_CLASS(CMFCexp8_2View);8.1 资源和资源文件资源和资源文件8.2 菜单菜单n菜单定义语句的格式为:标识符 MEMU,载入特性选项定义菜单的关键字8.2 菜单菜单n一个子菜单是总菜单的一个选项,它一般为弹出式菜单。定义弹出式菜单要使用关键字POPUP,定义子菜单的语句格式为: POPUP“子菜单标题”,选项 8.2 菜单菜单n菜单中可以向应用程序发出消息的选项叫做命令选项。描述一个菜单命令选项需要使用关键字MEUITEM,其语句格式为:MEUITEM “菜单项名称” ,标识符(ID),选项 8.2 菜单菜单n

4、在定义菜单命令选项项消息映射时,其参数中要包含菜单项的ID,同时也要包含该选项所对应的消息响应函数。所以,菜单选项消息映射宏的格式应该是:ON_COMMAND(菜单项的ID,消息响应函数名) 8.2 菜单菜单8.2.2 编辑现有的菜单例8-18.2.3自定义菜单例8-28.2.4 用菜单编辑器编辑菜单8.2.5 菜单选项的动态修改 程序在显示菜单之前,会发出一个消息并调用该消息的响应函数,在这个函数中,程序员可以为菜单的选项设置一些在程序运行中可添加也可删除的标记以及对菜单的文本进行动态修改.为了使应用程序响应这个消息,应该按如下形式在程序中书写消息映射宏:ON_UPDATE_COMMAND_

5、UI(ID_FILE_OPEN,OnUpdateFileOpen) 第一个参数为菜单选项的ID,第二个参数为消息响应函数的名称.对应消息映射,在程序中还要定义该消息的响应函数,这个函数叫做菜单项的UI函数.void CMFCexp9_1View:OnUpdateFileOpen(CCmdUI* pCmdUI)这个函数的参数是CCmdUI类对象的指针,CCmdUI类提供了4个方法,用这4个方法可以使菜单选项产生不同的效果.Enable (BOOL bOn=TRUE) 参数值为TRUE使菜单选项有效,反之失效SetCheck (int nCheck=1)参数值为TRUE使菜单选项前面出现选中标记,

6、否则不出现.SetRadio(BOOL bOn=TRUE)参数值为TRUE使菜单选项前面出现选中标记,而使其余项不出现SetText(LPCTSTR lpszText)设置菜单选项的文本例8-3给程序的菜单选项添加选择标记的程序实例.8.3 快捷键快捷键n快捷键总是和菜单选项配合使用的。在资源描述文件中,是用快捷键表来定义菜单的快捷键的。定义快捷键表的语句格式为:资源标识符 ACCELERATORS 载入选项 定义快捷键的关键字8.4 图标图标n用图标编辑器可以制作两种规格的图标,一种叫做大图标(3232位),一种叫做小图标(1616位),程序设计人员应该同时提供这两种规格的图标,至于应用程序

7、使用哪种图标是由系统决定的n用图标编辑器上的各种绘图工具,可以按自己的需要绘制图标。绘制完图标之后,要存储为扩展名为.ico的图标文件。 n在资源描述的文本文件中添加如下描述语句:程序资源的标识 ICON 选项 “资源文件路径”例如:IDR_MAINFRAME1 ICON DISCARDABLE resMFCexp8_2_1.ico 8.4 图标图标8.5 位图位图n使用图像制作工具设计出位图之后,则需要把该文件放置在工程文件中的res文件夹中,然后在工程项目的资源文件中添加如下描述:标识符 BITMAP DISCARDABLE res位图名.bmpn使用位图,需要先定义一个位图类的对象: C

8、Bitmap m_Bmp; n然后把位图装载到对象中:m_Bmp.LoadBitmap(IDB_BITMAP); 8.5 位图位图n为了处理位图,CBitmap类对象可以用成员函数来获得位图的各种信息:int GetBitmap(BITMAP*pBitMap); typedef struct tagBITMAPintbmType;/位图类型intbmWidth;/位图宽 intbmHeight;/位图高intbmWidthBytes;/位图每行的字节数目BYTEbmPlanes;/位平面数BYTEbmBitsPixel;/每点字节数LPVOID bmBits;/位图数据指针 BITMAP; 8

9、.5 位图位图n为了便于在内存中对位图进行一些绘图操作,位图不是直接被选入显示设备的DC,而是要先 选 入 内 存 设 备 D C 。 即 先 要 用CreateCompatibleDC创建一个合适的内存设备环境: CDC MemDC;/定义设备环境对象 MemDC.CreateCompatibleDC(NULL); 然后,把位图对象选入内存设备环境: MemDC.SelectObject(m_Bmp); 8.5 位图位图n为了在显示设备上显示位图,需要调用CDC类的成员函数BitBlt,把位图从内存设备环境复制到指定的设备环境(例如显示器)中。BitBlt函数的原型为:BOOL BitBlt

10、(int x,int y,int nWidth,int nHeight, CDC*pScrDC,int xSrc,int ySrc,DWARD dwRop); 8.5 位图位图8.5 位图位图小结n资源是供Windows应用程序使用的数据,他们驻留在执行文件中.程序运行时,随着程序的需要,这些数据可以动态的加载进入内存.n常用的资源有菜单、加速键、图标、位图程序所需的资源使用资源描述文件来说明,并在资源头文件中用标志符唯一的标志.资源可使用Visual C+的资源编辑器来创建和编辑也可使用文本编辑器来编辑.n菜单的使用与Windows的命令消息WM_COMMAND相关.菜单项消息映射宏:ON_COMMAND(菜单项ID,消息响应函数名)菜单项动态修改的消息映射宏:ON_UPDATE_COMMAND_UI(菜单项ID,消息响应函数名)n在文档/视图结构的程序中,资源的加载是由应用程序类的InitInstance函数通过构造CDocTemplate(包括其

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论