第二章资源在Windows编程中的应用ppt课件

上传人:我*** 文档编号:148627538 上传时间:2020-10-21 格式:PPT 页数:63 大小:120.50KB
返回 下载 相关 举报
第二章资源在Windows编程中的应用ppt课件_第1页
第1页 / 共63页
第二章资源在Windows编程中的应用ppt课件_第2页
第2页 / 共63页
第二章资源在Windows编程中的应用ppt课件_第3页
第3页 / 共63页
第二章资源在Windows编程中的应用ppt课件_第4页
第4页 / 共63页
第二章资源在Windows编程中的应用ppt课件_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《第二章资源在Windows编程中的应用ppt课件》由会员分享,可在线阅读,更多相关《第二章资源在Windows编程中的应用ppt课件(63页珍藏版)》请在金锄头文库上搜索。

1、第二章资源在Windows编程中的应用,在Windows应用程序中可以使用几种不同类型的资源,如加速键、位图、对话框和菜单等。 这些资源可以使用VC提供的资源编辑器来实现创建和编辑。 资源的使用,方便了应用程序与用户之间的交互界面的设计。,第二章资源在Windows编程中的应用,菜单与加速键资源 图标资源的应用,菜单与加速键资源,菜单是Windows图形用户界面中窗口的重要组成部分。菜单可使用户直观地了解并使用应用程序所提供的功能。 加速键可使菜单的操作更灵活快捷,两种资源往往密不可分。,菜单与加速键资源,菜单由以下及部分组成: 窗口主菜单条 下拉式菜单框 菜单项热键标识 菜单项加速键标识 菜

2、单项分隔线 选中与否的标识,菜单与加速键资源,菜单的创建过程 操作菜单项 动态地创建菜单 加速键资源 创建菜单资源实例,菜单的创建过程,定义菜单 菜单在资源描述文件中的定义形式为:菜单名 MENU ,选项菜单项列表 菜单名标识特定的菜单,应用程序通过菜单名加载制定菜单。,菜单的创建过程,定义菜单 MENU关键字,用来标识资源的性质。 载入特性选项,用来标识菜单所具有的载入特性。,菜单的创建过程,定义菜单 菜单项POPUP语句定义弹出式菜单,形式为: POPUP“菜单项名(,菜单的创建过程,定义菜单 菜单项MENUITEM语句定义菜单项,形式为:MENUITEM “菜单项名”,ID,选项 ID为

3、菜单项标识。WM_COMMAND消息中字参数wParam中包含选中菜单项的标识。 水平分隔符:MENUITEM SEPARATOR,菜单的创建过程,定义菜单 例 在“Menu”的窗口中创建一个“文件”菜单。该菜单含有“新建”、“打开”、“关闭”、“保存”、“另存为”及“退出”等菜单项。菜单项均使用热键;并且“退出” 项与其他菜单项之间用分隔线分开。,/menu.rc #include #include “Menu.h” 菜单定义 Menu MENU MOVEABLE Menu为窗口菜单的名称 POPUP“文件(wndclass.lpszMenuName=lpszMenuName;,菜单的创建过

4、程,加载菜单资源 在创建窗口时加载菜单应用程序需先调用函数LoadMemu加载菜单HMENU LoadMemu ( hInstance,/当前程序的实例句柄 lpszMenuName/窗口菜单名 ); 如:hmenu=LoadMenu(hlnstance,Menu);hwnd=CreateWindow( ,hmenu, ,);,菜单的创建过程,加载菜单资源 动态加载菜单应用程序获取菜单句柄后,可通过SetMenu动态地加载菜单BOOL SetMenu ( HWND hwnd,/ Hwnd为窗口句柄 HMENU hmenu/ hmenu为菜单句柄); 采用这种方法,可在同一个应用程序中实现多种不

5、同的菜单操作界面,菜单的创建过程,禁止或激活菜单项 创建菜单时,可以调用函数EnableMenuItem改变其初始状态DWORD EnableMenuItem( HMENU hmenu, UlNT wIDEnableItem, /被禁止或激活的菜单项标识 UINT dwEnable) /dwEnable为菜单项操作标识,菜单的创建过程,禁止或激活菜单项 例禁止弹出式菜单“文件”中的“打开”项的形式如下:EnableMenuItem(hmenu,IDM_OPEN,MF_BYCOMMAND|MF_DISABLED);,操作菜单项,设置或取消选中(“” )标志 在资源描述文件中设置菜单项为CHECK

6、ED; 调用函数CheckMenuItem设置或取消选中标志DWORD CheckMenultem(HMENU hmenu,UINT wIDCheckItem,/设置或取消选中标志的菜单项标识。UINT dwCheck)/操作标识,操作菜单项,增加菜单项 在菜单的尾部增加菜单项可调用函数AppendMenuBOOL AppendMenu(aHMENU hmenu, UINT dwFlags, /新菜单项的类型标识或其他信息UINT dwIDNewItem,/新菜单项的标识LPCTSTR lpNewItem)/新菜单项的内容,取决于dwFlags,操作菜单项,增加菜单项 例在弹出式菜单“文件”的

7、末尾增加一项“关于”的形式如下:AppendMenu(hmenu,MF_ENABLED,IDM_ABOUT,“关于( /对wPosition的解释 例如,删除弹出式“文件”菜单中的“另存为”项的形式如下:DeleteMenu(hmenu,IDM_SAVEAS, MF_BYCOMMAND),操作菜单项,修改菜单项 调用函数ModifyMenu可修改菜单中的某个项BOOL ModifyMenu(HMENU hmenu,UINT wPosition,/指定需修改的菜单项位置UINT dwFlag,UINT dwIDNweItem,/一般为修改后菜单项的标识LPCTSTR lpNewItem);/一般

8、为修改后的菜单项名,操作菜单项,修改菜单项 例如修改弹出式菜单“文件”中“打开”项为“加载”项的语句如下ModifyMenu(hmenu,IDM_OPEN,MF_BYCOMMAND,IDM_LOAD,“加载(/主窗口菜单句柄HMENU hPopupmenu;/创建新的菜单句柄定义菜单句柄hPopupmenu=CreateMenu( );,加速键资源,加速键资源是常伴随菜单使用的一种非常有用的资源,创建步骤如下: 在资源描述文件中定义加速键资源 加载加速键资源 翻译加速键,加速键资源,定义加速键资源 在资源描述文件中定义加速键资源的形式为:加速键表明 ACCELERATORS加速键的定义 加速键

9、定义的格式为:键名,加速键标识(ID),类型NOINVERT ALTSHIFTCONTROL,加速键资源,定义加速键资源 常用的加速键有两种形式: “char”, id与Ctrl 键组合的加速键。例如“文件”菜单中“保存”项的加速键可定义为: “S” , IDM_SAVE nCode, id, VIRTKEY使用虚拟键作为加速键。如VK_F1,VK_DELETE等。例如将F1键定义为“帮助”菜单项的加速键,其形式如下:VK_F1,IDM_HELP,VIRTKEY,加速键资源,定义加速键资源 下面是资源描述文件对名为“Menu”的窗口菜单项的加速键定义:#include#include“Menu

10、.h”菜单定义加速键表定义Menu ACCELERATORS 加速键表名为“Menu”“N”,IDM_NEW“O”,IDM_OPEN“S”,IDM_SAVE,加速键资源,加载加速键资源 通过函数LoadAccelerators加载加速键资源,其形式为:HACCEL hAccel;hAccel=LoadAccelerators(hInstance,/ hInstance为当前程序实例句柄lpAcceIName/ lpAccelName为加速键表名);,加速键资源,翻译加速键 使用加速键可实现菜单项快捷切换,应用程序在消息循环中必须完成加速键消息到菜单消息的翻译。while(GetMessage(

11、 应用程序建立新菜单、加入菜单项并插入到主菜单的指定位置。在创建新的弹出式菜单后,应用程序还通过调用函数 EnableMenuItem禁止“创建统计计算菜单项”并将其暗淡显示。 调用函数DrawMenuBar重新显示改变后的窗口主菜单。 BOOL DrawMenuBar(HWND hwnd),创建菜单资源实例,创建“统计计算” 菜单项后,可通过选择“文件”下拉菜单中的“删除统计计算菜单项”删除创建的“统计计算”菜单项。 应用程序调用函数DeleteMenu删除该菜单项,并调用函数EnableMenuItem恢复“创建统计计算菜单项”的属性。此外,该程序在响应“文件”弹出式菜单中的“退出”项时还

12、使用了函数SendMessage。 SendMessage功能是向窗口发送消息LONG SendMessage(HWND hwnd, UINT Msg, DWORD dwParam, LONG lParam)其中:Msg为发送的消息;dwParam和lParam均为消息的附加信息。,/头文件 MENUDEMO.h #define IDM_NEW10 #define IDM_OPEN11 #define IDM_CLOSE12 #define IDM_SAVE13 #define IDM_SAVEAS14 #define IDM_ADDPRINTMENU15 #define IDM_DELPRI

13、NTMENU16 #define IDM_EXIT17 #define IDM_CUT18 #define IDM_COPY19 #define IDM_PASTE20 #define IDM_DELETE21 #define IDM_HELP22 #define IDM_LINE23 #define IDM_RECT24 #define IDM_RRECT25 #define IDM_ELLIP26,本例菜单资源文件中的部分内容 MENU MENU DISCARDABLE BEGIN POPUP 文件( /定义菜单句柄 LRESULT CALLBACK WndProc(HWND,UINT,W

14、PARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst, LPSTR lpszCmdLine,int nCmdShow) HWND hwnd ; MSG Msg ; HACCEL hAccel; WNDCLASS wndclass ; char lpszMenuName=Menu; char lpszClassName = 菜单; char lpszTitle= My_Menu_Example; wndclass.style = 0; wndclass.lpfnWndProc = WndProc; wn

15、dclass.cbClsExtra= 0; wndclass.cbWndExtra= 0; wndclass.hInstance = hInstance; wndclass.hIcon = LoadIcon( NULL, IDI_APPLICATION); wndclass.hCursor = LoadCursor( NULL, IDC_ARROW); wndclass.hbrBackground = GetStockObject( WHITE_BRUSH); wndclass.lpszMenuName = lpszMenuName ; /加载窗口类菜单 wndclass.lpszClassN

16、ame = lpszClassName ;,if( !RegisterClass( ,/加载加速键资源 hAccel=LoadAccelerators(hInstance,lpszMenuName); while( GetMessage( ,LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) switch(message) /处理菜单消息 case WM_COMMAND: switch(LOWORD(wParam) case IDM_NEW: break; case IDM_OPEN: break; case IDM_SAVE: break; case IDM_SAVEAS: break; case IDM_CLOSE: break;,/在主菜单中添加弹出式统计计算菜单 case IDM_ADDPRINTMENU: /获取主菜单句柄 hmenu=GetM

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号