03界面编程1-菜单

03界面编程1-菜单

ID:47116043

大小:1016.00 KB

页数:43页

时间:2019-08-06

03界面编程1-菜单_第1页
03界面编程1-菜单_第2页
03界面编程1-菜单_第3页
03界面编程1-菜单_第4页
03界面编程1-菜单_第5页
资源描述:

《03界面编程1-菜单》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第3章界面编程1-菜单Windows应用程序开发的基础是GUI的设计与编程,GUI包括WindowsAPI提供的窗口、菜单、对话框和控件等基本界面元素,以及MFC提供的工具栏和状态栏等组合控件,还有键盘和鼠标等消息响应与事件驱动。这些内容将在本书的第3~7章中逐个加以讨论,本章介绍菜单的设计与编程。3.1菜单菜单(menu)是传统GUI程序的主要命令接口,可用键盘和鼠标来访问。虽然菜单是基于文字串的,但是相对于(可视方便的)工具条和(直接快速的)快捷键,菜单所提供的程序功能更为完整和全面。默认的传统MFC应用程序,会在主框架窗口中自动生成一个菜单条

2、(menubar)。菜单条也叫顶层菜单(top-levelmenu),一般包含文件、编辑、查看、窗口、帮助等若干下拉菜单。3.1.1菜单与菜单项菜单可分为包含若干菜单项的弹出菜单和发送命令消息的菜单项两大类,可以用键盘和鼠标这两种输入设备来访问菜单和菜单项(简记为“菜单[项]”)。1.菜单弹出菜单(pop-upmenu,简称为菜单)包含若干菜单项,一般处于(诸菜单项都不可见的)关闭状态。只有在用户(通过菜单名或按鼠标右键)激活菜单时,才由操作系统弹出来显示。并在用户通过选中菜单中的某个菜单项而发送对应的命令消息之后,又被操作系统自动关闭。(弹出)菜

3、单又可以进一步分成(菜单条中的)下拉菜单(drop-downmenu)和(按鼠标右键后在光标处弹出的)快捷菜单(shortcutmenu),参见图3-1a)。弹出菜单中还可以包含若干(多级)子菜单,由其对应的(右端带的)菜单项激活,参见图3-1b)。43a)弹出菜单的种类b)多级子菜单图3-1菜单与菜单项2.菜单项菜单项(menuitem)用于发送程序的命令消息,一般由位于左端的图标或(表示选中的)勾符、简述命令功能的标题(caption)串、唯一标识资源的ID、详细说明命令功能的提示串、对应的加速键资源和事件处理函数等多个部分组成。其中的标题字符

4、串又可包括:菜单名串、访问键、加速键指示串、(表示会弹出一个对话框)省略号“...”和(由系统在弹出菜单时自动生成的,表示对应于子菜单的右向黑三角)等内容,例如“打开(O)…Ctrl+O”、“工具栏(T)”、“类型(T)”等,参见图3-1。3.ID菜单项和其他所有的Windows资源一样,都有ID(IDentifier,标识符)。ID是一个(在全程序中具有唯一性的)非负整数,用于识别资源,供程序代码使用。在Windows编程中,为了便于人类阅读,ID通常是用(以下划线分隔的大写字母单词串组成的)符号常量来表示,如ID_FILE_OPEN。不过,在M

5、FC编程中,一般不需要程序员手工编写符号常量ID的#define宏定义,而是在程序员设置资源的ID属性时,由资源编辑器自动生成。MFC应用程序中的所有ID定义,都位于项目目录下的资源头文件resource.h内。4.菜单类与对象在MFC类库中,菜单条和菜单都由CMenu类表示,它是对Windows菜单对象HMENU的类封装。CMenu类是直接从CObject的类派生的:CObject→CMenu43但是在MFC编程中一般不需要直接使用该类,除非你需要动态修改菜单[项]的内容。菜单对象属于主框架窗口,可先用从基类CWnd继承来的GetMenu函数CM

6、enu*GetMenu()const;获得菜单条对象的指针(只是临时的,不能保存供以后使用),再用菜单类的成员函数GetSubMenuCMenu*GetSubMenu(intnPos)const;来获取指定的下拉式弹出菜单,其中nPos为菜单(从0开始的)位置序号。若想在视图类中获得程序的菜单对象,则必须先得到主框架窗口的指针,这可以使用从基类CWnd继承来的GetTopLevelFrame成员函数:CFrameWnd*GetTopLevelFrame()const;例如:CFrameWnd*pFrmWnd=GetTopLevelFrame();/

7、/获取主框架窗口CMenu*pMenu=pFrmWnd->GetMenu();//获取菜单条CMenu*pSubMenu=pMenu->GetSubMenu(3);//获取第4个菜单3.1.2访问键和快捷键访问键和快捷键都可用于菜单的快速键盘访问。1.访问键访问键(mnemonickey,助记键)也叫热键(hotkey)是菜单[项]标题字符串中出现的(可用对应的键盘按键快速访问的)带下划线的字符(一般为大写英文字母),例如菜单条上“文件(F)”菜单中的字母“F”和文件菜单中的“另存为(A)”菜单项的字母“A”。访问键的使用方法有如下两种:l按“Al

8、t+访问键”,可“选中”当前窗口菜单条上访问键所对应的菜单[项],例如按“Alt+F”会打开“文件(F)”菜单。l按“访问

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。