您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > 第7章资源在Windows应用程序中的应用
第7章资源在Windows应用程序中的应用主要内容•菜单•对话框•位图•图标菜单和加速键资源及应用•菜单是Windows图形用户界面中窗口的重要组成部分。菜单可使用户直观地了解并方便的使用应用程序所提供的功能。使用加速键资源可使菜单的操作更灵活快捷,两种资源密不可分。菜单和加速键资源及应用•菜单由以下部分组成窗口主菜单栏下拉式菜单菜单项热键标识菜单项加速键标识菜单项分割线菜单和加速键资源及应用•菜单的创建过程•操作菜单项•动态地创建菜单•加速键资源菜单和加速键资源及应用•1.菜单的创建过程定义菜单加载菜单资源菜单和加速键资源及应用•1.菜单的创建过程:定义菜单menuIDMENU[,载入特性选项]{菜单项列表}menuID:菜单资源名,用以标识特定的菜单,应用程序通过菜单资源名加载指定菜单,他可以是一个字符串,也可以是一个1~65536之间的任何一个整数。MENU关键字:用来标识资源的性质。载入特性选项:用以标识菜单所具有的载入特性。菜单项列表:POPUP语句和MENUITEM语句菜单和加速键资源及应用•1.菜单的创建过程:定义菜单载入特性选项说明DISCARDABLE当不再需要菜单时可丢弃FIXED将菜单保存在内存中的固定位置LOADONCALL需要时加载菜单MOVEABLE菜单在内存中可移动PRELOAD立即加载菜单菜单和加速键资源及应用•1.菜单的创建过程:定义菜单POPUP语句定义弹出式菜单:POPUP菜单项名[,选项];选项说明MENUBARBREAK菜单项纵向分隔标志CHECKED显示选中标志INACTIVE禁止一个菜单项GRAYED禁止并变灰显示菜单和加速键资源及应用•1.菜单的创建过程:定义菜单POPUP语句定义弹出式菜单:POPUP菜单项名[,选项];在菜单项名中加入符号“&”,以定义热键定义弹出式菜单项“编辑”的形式如下:POPUP“编辑(&E)”;//表明该菜单项使用Alt+E作为热键注意:POPUP定义的弹出式菜单项还可以包含子菜单。菜单和加速键资源及应用•1.菜单的创建过程:定义菜单MENUITEM语句定义菜单项:MENUITEM菜单项名菜单项标识(ID)[,选项]ID为菜单项标识,在WM_COMMAND消息中字参数wParam中包含选中菜单项的标识。每个菜单项的标识必须唯一,标识值常在头文件中定义。创建水平分隔符:MENUITEMSEPARATOR菜单和加速键资源及应用•1.菜单的创建过程:定义菜单举例My_menuMENUMOVEABLEBEGINPOPUP文件(&F)BEGINMENUITEM新建(&N),IDM_NEWMENUITEM打开(&O),IDM_OPENMENUITEM关闭(&C),IDM_CLOSEMENUITEM保存(&S),IDM_SAVEMENUITEM另存为(&A),IDM_SAVEASMENUITEMSEPARATORMENUITEM“退出(&X)”,IDM_EXITENDEND菜单和加速键资源及应用•1.菜单的创建过程:定义菜单举例定义菜单项标识对应的数值#defineIDM_NEW10#defineIDM_OPEN11#defineIDM_CLOSE12#defineIDM_SAVE13#defineIDM_SAVEAS14#defineIDM_EXIT15菜单和加速键资源及应用•1.菜单的创建过程:加载菜单资源在窗口类中加载菜单在创建窗口时加载菜单动态加载菜单WNDCLASSwndclass;…wndclass.lpszMenuName=lpszMenuName;HWNDhwnd;HMENUhmenu;…hmenu=LoadMenu(hlnstance,My_menu);hwnd=CreateWindow(…,hmenu,…);hmenu2=LoadMenu(hlnstance,Menu2);SetMenu(hwnd,hmenu2);…菜单和加速键资源及应用•2.操作菜单项禁止或激活菜单项设置或取消选中标志增加菜单项删除菜单项修改菜单项菜单和加速键资源及应用•2.操作菜单项:禁止或激活菜单项BOOLEnableMenuItem(HMENUhmenu,UlNTwIDEnableItem,//被禁止或激活的菜单项标识UINTdwEnable)应用程序创建菜单时,通过在资源描述文件中设定菜单项的选项以指定该菜单项的初始状态为禁止或激活,或调用函数EnableMenuItem改变其初始状态,该函数的原型为:菜单和加速键资源及应用•2.操作菜单项:禁止或激活菜单项BOOLEnableMenuItem(HMENUhmenu,UlNTwIDEnableItem,//被禁止或激活的菜单项标识UINTdwEnable)据dwEnable的取值,可为菜单项的ID值,也为该菜单项在菜单中位置标识说明MF_BYCOMMAND以ID值标识菜单项MF_ENABLED激活菜单项MF_BYPOSITION表明以位置标识菜单项MF_GRAYED禁止菜单项并使其变灰显示MF_DISABLED禁止菜单项菜单和加速键资源及应用•2.操作菜单项:设置或取消选中标志DWORDCheckMenuItem(HMENUhmenu,UINTwIDCheckItem,//菜单项标识UINTdwCheck//操作标识)标识说明MF_CHECKED添加选中标志MF_UNCHECKED删除选中标志应用程序可在菜单旁显示一个选中标志,如打上“√”标记,以表明用户选择了该项,除在资源描述文件中设置菜单项为CHECKED外,应用程序还可以通过调用函数CheckMenuItem设置或取消选中标记。菜单和加速键资源及应用•2.操作菜单项:增加菜单项1.在菜单的尾部增加菜单项BOOLAppendMenu(HMENUhmenu,UINTdwFlags,//新加入的菜单项类型标识UINTdwIDNewItem,//新加入菜单项的IDLPCTSTRlpNewItem//新加入的菜单项内容)菜单和加速键资源及应用•2.操作菜单项:增加菜单项2.在菜单中插入菜单项BOOLInsertMenu(HMENUhmenu,//菜单句柄UINTwPosition,//指定新菜单项插入的位置UINTdwFlag,//新加入的菜单项的信息UINTdwIDNweItem,//新加入的菜单项的标识LPCTSTRlpNewItem//新插入的菜单项的内容)菜单和加速键资源及应用•2.操作菜单项:删除菜单项BOOLDeleteMenu(HMENUhmenu,UINTwPosition,//要删除的菜单项的位置UINTdwFlag//对wPosition的解释)菜单和加速键资源及应用•2.操作菜单项:修改菜单项BOOLModifyMenu(HMENUhmenu,UINTwPosition,//指定需修改的菜单项位置UINTdwFlag,UINTdwIDNweItem,//修改后菜单项的标识LPCTSTRlpNewItem//修改后的菜单项名)菜单和加速键资源及应用•3.动态创建菜单动态地创建菜单可以使系统资源更加节省,在应用程序中动态创建菜单分两个步骤:1.调用函数CreateMenu创建空的弹出式菜单HMENUCreateMenu(void)2.调用函数AppendMenu或InsertMenu在该菜单中加入菜单项。菜单和加速键资源及应用•4.加速键资源加速键资源是常伴随菜单使用的一种非常有用的资源,创建加速键资源的步骤如下:(1)在资源描述文件中定义加速键资源加速键名ACCELERATORS加速键标识(ID),[类型][NOINVERT]//使用加速键时,菜单项不高亮显示[ALT][SHIFT][CONTROL]//组合键的组合方式菜单和加速键资源及应用•4.加速键资源加速键资源是常伴随菜单使用的一种非常有用的资源,创建加速键资源的步骤如下:常用的加速键有两种形式:①“^char”,id例如:“文件”菜单中“保存”项的加速键可定义为:“^S”,IDM_SAVE②nCode,idVIRTKEY使用虚拟键作为加速键。例如将F1键定义为“帮助”菜单项的加速键,其ID标识为IDM_HELP,其形式如下:VK_F1,IDM_HELP,VIRTKEY菜单和加速键资源及应用•4.加速键资源加速键资源是常伴随菜单使用的一种非常有用的资源,创建加速键资源的步骤如下:2.加载加速键资源调用函数LoadAccelerators加载加速键资源:…HACCELhAccel;…hAccel=LoadAccelerators(hInstance,//当前程序实例句柄lpAcceIName//lpAccelName为加速键表名);菜单和加速键资源及应用•4.加速键资源加速键资源是常伴随菜单使用的一种非常有用的资源,创建加速键资源的步骤如下:3.翻译加速键翻译操作经常在应用程序的消息循环中进行:while(GetMessage(&Msg,NULL,0,0)){if(!TranslateAccelerator(hwnd,hAccel,&Mag)){TranslateMessage(&Msg);DispatchMessage(&Msg);}}菜单和加速键资源及应用•4.加速键资源加速键资源是常伴随菜单使用的一种非常有用的资源,创建加速键资源的步骤如下:3.翻译加速键函数TranslateAccelerator是翻译操作的核心。其作用是对照加速键表,将相关的按键消息WM_KEYDOWN和WM_KEYUP翻译成WM_COMMAND或WM_SYSCOMMAND消息。其特点是将翻译后的消息直接发往窗口,不在消息队列中等待。对话框资源及其应用•对话框是一个弹出式窗口,它一般用于用户输入或与用户进行交互活动的场合对话框模式非模式允许用户在该对话框与应用程序其他窗口之间的切换,非模式对话框从WinMain函数的消息循环中接收输入不允许用户在关闭对话框之前切换到应用程序的其他窗口模态对话框资源操作步骤•定义对话框资源•定义对话框消息处理函数•调用DialogBox函数显示对话框•关闭对话框模态对话框资源操作步骤•1.定义对话框资源对话框名DIALOG[载入特性选项]X,Y,Width,Height[设置选项]BEGIN对话框的控件定义END模态对话框资源操作步骤•1.定义对话框资源对话框名DIALOG[载入特性选项]X,Y,Width,Height[设置选项]BEGIN对话框的控件定义END对话框名:应用程序通过对话框名标识对话框资源,可以是一个字符串,也可以是1~65535之间的任何整数。DIALOG:关键字模态对话框资源操作步骤•1.定义对话框资源对话框名DIALOG[载入特性选项]X,Y,Width,Height[设置选项]BEGIN对话框的控件定义END载入特性选项:对话框资源可选的载入特性选项与菜单资源相同。对话框位置及外形尺寸:其中X,Y为对话框在窗口中的左上角坐标;Width,Height为对话框的宽度与高度。模态对话框资源操作步骤•1.定义对话框资源对话框名DIALOG[载入特性选项]X,Y,Width,Height[设置选项]BEGIN对话框的控件定义END设置选项:常用的有CAPTION(标题)和STYLE(样式)。模态对话框资源操作步骤•1.定义对话框资源样式说明DS_3DLOOK使用三维边框DS_FIXEDSYS使用SYSTEM_FIXED字体DS_MODALFRAME使用细实线边框DS_SYSMODAL系统模式对话框DS_CENTERMOUSE鼠标作为对话框中心点DS_CENTER对话框居中DS_SETFOREGROUND置对话框前台对话框常用样式及其说明模态对话框资源操作步骤•1.定义对话框资源对话框名DIALOG[载入特性选项]X,Y,Width,Height[设置选项]BEGIN对话框的控件定义END经常组合使用窗口样式和对话框样式,如:STYLEDS_MODALFRAME|WS_POPUP|WS_CAPTION模态对话框资源操作步骤•1.定义对话框资源对
本文标题:第7章资源在Windows应用程序中的应用
链接地址:https://www.777doc.com/doc-2112172 .html