第06讲 资源在Windows编程中的应用.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:53 大小:257KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

第06讲 资源在Windows编程中的应用.ppt

第06讲资源在Windows编程中的应用.ppt

预览

免费试读已结束,剩余 43 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第7章资源在Windows编程中的应用7.1菜单和加速键资源及其应用7.1.1菜单的创建过程POPUP语句定义弹出式菜单,其形式为:POPUP"菜单项名"[,选项];在菜单项名中加入符号“&”,以定义热键定义弹出式菜单项“编辑”的形式如下:POPUP“编辑(&E)”;MENUITEM用于定义菜单项,其形式为:MENUITEM"菜单项名"菜单项标识(ID)[,选项]ID为菜单项标识,在WM_COMMAND消息中字参数wParam中包含选中菜单项的标识。每个菜单项的标识必须唯一,标识值常在头文件中定义。如:创建菜单中的水平分隔符:MENUITEMSEPARATOR该菜单在资源描述文件中的定义如下:#include<windows.h>#include"Menu.h"∥菜单定义My_menuMENUMOVEABLE{POPUP"文件(&F)"{MENUITEM"新建(&N)",IDM_NEWMENUITEM"打开(&O)",IDM_OPENMENUITEM"关闭(&C)",IDM_CLOSEMENUITEM"保存(&S)",IDM_SAVEMENUITEM"另存为(&A)",IDM_SAVEASMENUITEMSEPARATORMENUITEM“退出(&X)”,IDM_EXIT}}menu.h文件中定义了菜单项标识所对应的数值:……#defineIDM_NEW10#defineIDM_OPEN11#defineIDM_CLOSE12#defineIDM_SAVE13#defineIDM_SAVEAS14#defineIDM_EXIT15…(2)加载菜单资源7.1.2操作菜单项2.设置或取消选中标志3.增加菜单项在菜单的尾部增加菜单项BOOLAppendMenu(HMENUhmenu,UINTdwFlags,//新加入的菜单项类型标识UINTdwIDNewItem,//新加入菜单项的IDLPCTSTRlpNewItem//新加入的菜单项内容)例如在“文件”菜单的末尾增加一项“关于”:AppendMenu(hmenu,MF_ENABLED,IDM_ABOUT,“关于(&A)“);(2)在菜单中插入菜单项调用函数InsertMenu在菜单中插入新的菜单项BOOLInsertMenu(HMENUhmenu,//菜单句柄UINTwPosition,//指定新菜单项插入的位置UINTdwFlag,//新加入的菜单项的信息UINTdwIDNweItem,//新加入的菜单项的标识LPCTSTRlpNewItem//新插入的菜单项的内容)例如,在“文件”菜单的“退出”项之前加入“打印”菜单项;InsertMenu(hmenu,IDM_EXIT,MF_BYCOMMAND|MF_ENABLED,IDM_PRINT,"打印(&P)");4.删除菜单项调用函数DeleteMenu删除菜单项:BOOLDeleteMenu(HMENUhmenu,UINTwPosition,//要删除的菜单项的位置UINTdwFlag//对wPosition的解释)例如,删除“文件”菜单中的“另存为”菜单项:DeleteMenu(hmenu,IDM_SAVEAS,MF_BYCOMMAND)5.修改菜单项调用函数ModifyMenu修改菜单中的某个项;BOOLModifyMenu(HMENUhmenu,UINTwPosition,//指定需修改的菜单项位置UINTdwFlag,UINTdwIDNweItem,//修改后菜单项的标识LPCTSTRlpNewItem//修改后的菜单项名)例如:修改“文件”菜单中“打开”项为“加载”项:ModifyMenu(hmenu,IDM_OPEN,MF_BYCOMMAND,IDM_LOAD,"加载(&L)");7.1.3动态地创建菜单7.1.4加速键资源常用的加速键有两种形式:①“^char”,id例如:“文件”菜单中“保存”项的加速键可定义为:“^S”,IDM_SAVE②nCode,idVIRTKEY使用虚拟键作为加速键。例如将F1键定义为“帮助”菜单项的加速键,其ID标识为IDM_HELP,其形式如下:VK_F1,IDM_HELP,VIRTKEY2.加载加速键资源调用函数LoadAccelerators加载加速键资源:…HACCELhAccel;…hAccel=LoadAccelerators(hInstance,//当前程序实例句柄