浏览 2661 次
锁定老帖子 主题:玩转菜单-菜单资源
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-02-08
菜单资源 WINDOWS程序的菜单通常编译前定义在资源文件中,程序员可使用VC自带的资源编辑器可视化地编辑菜单资源,在资源文件中自动生成相关脚本,对于WIN32汇编程序员,最好能看懂这些自动生成的脚本,VC程序员在完成一些特殊程序时也需要亲自看看这些脚本文件。笔者用VC向导生成一个空的单文档程序,下面是VC自动生成的脚本文件中,我们一起对其中的菜单资源进行分析:
/////////////////////////////////////////////////////////////////////////////
// // Menu // IDR_MAINFRAME MENU PRELOAD DISCARDABLE
BEGIN POPUP "文件(&F)" BEGIN MENUITEM"新建(&N)\tCtrl+N", ID_FILE_NEW MENUITEM"打开(&O)...\tCtrl+O", ID_FILE_OPEN MENUITEM"保存(&S)\tCtrl+S", ID_FILE_SAVE MENUITEM"另存为(&A)...", ID_FILE_SAVE_AS MENUITEM SEPARATOR MENUITEM"打印(&P)...\tCtrl+P", ID_FILE_PRINT MENUITEM"打印预览(&V)", ID_FILE_PRINT_PREVIEW MENUITEM"打印设置(&R)...", ID_FILE_PRINT_SETUP MENUITEM SEPARATOR MENUITEM"最近文件", ID_FILE_MRU_FILE1,GRAYED MENUITEM SEPARATOR MENUITEM"退出(&X)", ID_APP_EXIT END POPUP "编辑(&E)" BEGIN MENUITEM"撤消(&U)\tCtrl+Z", ID_EDIT_UNDO MENUITEM SEPARATOR MENUITEM"剪切(&T)\tCtrl+X", ID_EDIT_CUT MENUITEM"复制(&C)\tCtrl+C", ID_EDIT_COPY MENUITEM"粘贴(&P)\tCtrl+V", ID_EDIT_PASTE END POPUP "查看(&V)" BEGIN MENUITEM"工具栏(&T)", ID_VIEW_TOOLBAR MENUITEM"状态栏(&S)", ID_VIEW_STATUS_BAR END POPUP "帮助(&H)" BEGIN MENUITEM "关于test1(&A)...", ID_APP_ABOUT END END 一、菜单项的定义:
1、文字菜单项目的定义
MENUITEM"新建(&N)\tCtrl+N", ID_FILE_NEW
菜单项的定义方式是:MENUITEM 菜单文字,命令ID,选项列表
选项列表是可选项,也可以不定义。这定义了一个菜单项,显示的名称是新建(&N)Ctrl+N,命令ID是ID_FILE_NEW,没有选项列表,菜单文字定义中的“\t”为什么没显示出来呢?因为\t代表TAB字符,会使其后面的文字右对齐。
菜单项有以下选项:
CHECKED:打上选定标志
GRAYED:灰化
INACTIVE:禁用
MENUBREAK或MENUBARBREAK:把这个菜单项和以后的菜单项列到新的列中
我们把下面这段资源文件用记事本打开,给“新建”加上CHECKED选项,给“最近文件”加上GRAYED,给“打印”然后用VC重新编译运行一下这个程序。
MENUITEM"新建(&N)\tCtrl+N", ID_FILE_NEW,CHECKED
MENUITEM"打开(&O)...\tCtrl+O", ID_FILE_OPEN MENUITEM"保存(&S)\tCtrl+S", ID_FILE_SAVE MENUITEM"另存为(&A)...", ID_FILE_SAVE_AS MENUITEM SEPARATOR MENUITEM"打印(&P)...\tCtrl+P", ID_FILE_PRINT,MENUBREAK MENUITEM"打印预览(&V)", ID_FILE_PRINT_PREVIEW MENUITEM"打印设置(&R)...", ID_FILE_PRINT_SETUP MENUITEM SEPARATOR MENUITEM"最近文件", ID_FILE_MRU_FILE1,GRAYED MENUITEM SEPARATOR MENUITEM"退出(&X)", ID_APP_EXIT 从图5.1可以看出修改后,文件菜单已经按照我们要求的方式变了形。
图5.1
2、分隔符的定义
从图5.1中可以看出最近文件与退出之间有个分隔符,它的定义方式是:
MENUITEM SEPARATOR
3、弹出菜单项
POPUP"文件(&F)",
POPUP"编辑(&E)"
这些都是弹出菜单项,弹出菜单项的定义方式如下L
POPUP 菜单文字,选项列表
BEGIN
子菜单项定义
END
对于弹出菜单项,也可用选项列表,有兴趣的读者用记事本打开资源文件,将 POPUP"编辑(&E)"改为 POPUP"编辑(&E)",GRAYED,用VC重新编译运行一下试试效果吧
二、菜单的定义
IDR_MAINFRAME MENUPRELOAD DISCARDABLE
从上面的资源文件中可以看出,VC生成的默认单文档程序中只有一个菜单,菜单ID是IDR_MAINFRAME,菜单的定义方式是:
菜单IDMENU [DISCARDABLE]
DISCARDABLE表示菜单不用时从暂时从内存中卸掉。
PRELOAD 表示预加载该资源
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |