资源描述:
《Visual_C++面向对象与可视化程序设计07_Resource_SDKppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章资源在Windows编程中的应用加速键对话框位图资源光标菜单工具条字符串17.1菜单和加速键资源及其应用菜单由以下组成部分:(1)窗口主菜单条(2)下拉式菜单框(3)菜单项热键标识(4)菜单项加速键标识(5)菜单项分隔线27.1.1菜单的创建过程(1)定义菜单菜单在资源描述文件中的定义形式为:menuIDMENU[,载入特性选项]{菜单项列表}字符串,或1~65535之间的整数选项说明DISCARDABLE当不再需要菜单时可丢弃FIXED将菜单保存在内存中的固定位置LOADONCALL需要时
2、加载菜单MOVEABLE菜单在内存中可移动PRELOAD立即加载菜单POPUP语句MENUITEM语句3POPUP语句定义弹出式菜单,其形式为:POPUP"菜单项名"[,选项];在菜单项名中加入符号“&”,以定义热键定义弹出式菜单项“编辑”的形式如下:POPUP“编辑(&E)”;选项说明MENUBARBREAK菜单项纵向分隔标志CHECKED显示选中标志INACTIVE禁止一个菜单项GRAYED禁止并变灰显示4MENUITEM用于定义菜单项,其形式为:MENUITEM"菜单项名"菜单项标识(ID)
3、[,选项]ID为菜单项标识,在WM_COMMAND消息中字参数wParam中包含选中菜单项的标识。每个菜单项的标识必须唯一,标识值常在头文件中定义。如:创建菜单中的水平分隔符:MENUITEMSEPARATOR5该菜单在资源描述文件中的定义如下:#include#include"Menu.h"∥菜单定义My_menuMENUMOVEABLE{POPUP"文件(&F)"{MENUITEM"新建(&N)",IDM_NEWMENUITEM"打开(&O)",IDM_OPENMENUI
4、TEM"关闭(&C)",IDM_CLOSEMENUITEM"保存(&S)",IDM_SAVEMENUITEM"另存为(&A)",IDM_SAVEASMENUITEMSEPARATORMENUITEM“退出(&X)”,IDM_EXIT}}6menu.h文件中定义了菜单项标识所对应的数值:……#defineIDM_NEW10#defineIDM_OPEN11#defineIDM_CLOSE12#defineIDM_SAVE13#defineIDM_SAVEAS14#defineIDM_EXIT15…7
5、(2)加载菜单资源在窗口类中加载菜单在创建窗口时加载菜单动态加载菜单WNDCLASSwndclass;…wndclass.lpszMenuName=lpszMenuName;HWNDhwnd;HMENUhmenu;…hmenu=LoadMenu(hlnstance,"My_menu");hwnd=CreateWindow(…,hmenu,…);hmenu2=LoadMenu(hlnstance,"Menu2");SetMenu(hwnd,hmenu2);…87.1.2操作菜单项1.禁止或激活菜单项
6、BOOLEnableMenuItem(HMENUhmenu,UlNTwIDEnableItem,UINTdwEnable)92.设置或取消选中标志DWORDCheckMenuItem(HMENUhmenu,UINTwIDCheckItem,//菜单项标识UINTdwCheck//操作标识)103.增加菜单项在菜单的尾部增加菜单项BOOLAppendMenu(HMENUhmenu,UINTdwFlags,UINTdwIDNewItem,LPCTSTRlpNewItem)例如在“文件”菜单的末尾增加一
7、项“关于”:AppendMenu(hmenu,MF_ENABLED,IDM_ABOUT,“关于(&A)“);11(2)在菜单中插入菜单项调用函数InsertMenu在菜单中插入新的菜单BOOLInsertMenu(HMENUhmenu,//菜单句柄UINTwPosition,//指定新菜单项插入位置UINTdwFlag,//新加入的菜单项的信息UINTdwIDNweItem,//新加入的菜单项的标识LPCTSTRlpNewItem//新插入的菜单项的内容)124.删除菜单项调用函数DeleteMe
8、nu删除菜单项:BOOLDeleteMenu(HMENUhmenu,UINTwPosition,//要删除的菜单项的位置UINTdwFlag//对wPosition的解释)135.修改菜单项调用函数ModifyMenu修改菜单中的某个项;BOOLModifyMenu(HMENUhmenu,UINTwPosition,//指定需修改的菜单项位置UINTdwFlag,UINTdwIDNweItem,//修改后菜单项的标识LPCTSTRlpNewItem//修改后的菜单项名)147.1.