Windows程序设计第2章Windows窗口命令

Windows程序设计第2章Windows窗口命令

ID:45079801

大小:683.00 KB

页数:28页

时间:2019-11-09

Windows程序设计第2章Windows窗口命令_第1页
Windows程序设计第2章Windows窗口命令_第2页
Windows程序设计第2章Windows窗口命令_第3页
Windows程序设计第2章Windows窗口命令_第4页
Windows程序设计第2章Windows窗口命令_第5页
资源描述:

《Windows程序设计第2章Windows窗口命令》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第2章Windows窗口命令Windows应用程序都是基于消息驱动的,应用程序通过消息与用户进行交互。消息分为标准Windows消息、控件通知消息和命令消息三大类,程序员需要为用户所关心的消息建立消息映射并编写具有特定功能的消息处理函数。2.1消息与命令Windows应用程序都是消息驱动的,消息处理是Windows应用程序的核心。消息是操作系统通知应用程序某个事件已经发生的一种方式,例如当用户敲击键盘、点击菜单、移动鼠标或改变窗口大小时,都会向适当的窗口发送消息。同样,MFC应用程序也要处理Windows消息

2、,但是由于MFC类库中已经封装了消息和对消息的响应事件,这就使在用VisualC++开发Windows应用程序时,对消息的处理更加简单和易于维护。应用程序在初始化完成后,将调用CWinApp的成员函数Run来处理消息循环,消息循环不断检索由各种事件产生的消息,并将消息分发给适当的窗口。窗口接收到消息后,将调用专门的处理函数来处理各种消息。消息处理函数通常是某个类的成员函数,编写消息处理函数是编写MFC应用程序的主要任务。2.1.1响应消息的实例2.1.2消息的种类1.标准Windows消息标准Windows消

3、息主要分为三类。(1)键盘消息(2)鼠标消息(3)窗口消息2.控件消息3.命令消息(1)用户界面对象图2.4说明了用户界面对象的处理过程。(2)命令ID(3)命令目标(4)命令和控件消息的处理函数选择用户界面对象,如ClearAll菜单项产生命令消息ID_EDIT_CLEAR_ALL命令—目标消息映射ON_COMMAND调用消息处理函数OnEditClearAll()图2.4用户界面对象处理过程2.1.3消息的发送和接收1.标准Windows消息和处理函数2.命令消息的发送MFC把命令消息发送给命令目标链(有

4、可能处理该消息的一系列对象),其中至少有一个对象含有处理该命令消息的消息处理函数。命令目标链中的对象接收到消息后,将检查自己的消息映射,查看是否能处理相应的消息。不同对象检查消息映射的时机是不同的,也就是说,消息是按一定优先顺序在命令目标链中传递的。通常,每个命令目标类先把命令消息发送给某些其它对象,给其它对象先行处理该命令消息的机会。表2.3列出了常用目标类的命令发送顺序。表2.3标准命令的发送顺序接收到命令的命令目标类查询命令的顺序MDI主边框窗口1)活动的MDI子窗口2)主边框窗口3)应用程序(CWin

5、App类对象)MDI子框架窗口1)活动视图2)子框架窗口SDI边框窗口1)活动视图2)框架窗口3)应用程序(CWinApp类对象)视图1)视图2)与视图相连的文档文档1)文档2)与文档相连的文档模板对话框1)本对话框2)拥有本对话框的窗口3)应用程序(CWinApp类对象)2.1.4消息映射的结构消息映射都由一组宏组成,可以参照【例2.1】的源代码,在CMousePositionView.cpp文件中,我们可以看到以下代码:BEGIN_MESSAGE_MAP(CMousePositionView,CView)

6、//{{AFX_MSG_MAP(CMousePositionView)ON_WM_MOUSEMOVE()//}}AFX_MSG_MAPEND_MESSAGE_MAP()1.消息映射的继承关系2.消息映射的结构表2.4列出了常用的映射宏及其语法格式。注意,映射宏之后不能用分号。3.手工添加消息映射表2.4常用映射宏及其语法消息类型宏格式参数标准Windows消息ON_WM_XXX无参数命令消息ON_COMMAND命令ID,处理函数名命令更新通知消息ON_UPDATE_COMMAND_UI命令ID,处理函数名控件

7、通知消息ON_XXX命令ID,处理函数名用户自定义消息ON_MESSAGE自定义消息ID,处理函数名已注册Windows消息ON_REGISTERED_MESSAGE消息ID,处理函数名命令ID范围ON_COMMAND_RANGE起始命令ID,结束ID,处理函数名将更新的命令ID范围ON_UPDATE_COMMAND_UI_RANGE起始命令ID,结束ID,处理函数名控件ID范围ON_CONTROL_RANGE控件通知码,起始控件ID,结束ID,处理函数2.2菜单栏2.2.1菜单简介为了使Windows程序更

8、加易于操作,许多程序员在设计菜单时,都遵循下列规范:若点击菜单项,会弹出对话框,在该菜单项文本后应有“…”标记;若某项菜单含有子菜单,在该菜单项文本后应有►标记;若菜单项需要助记符,在英文菜单中,需要将助记字母用下划线标出,在中文菜单中,用括号将带下划线的助记字母括起来;若为某菜单项设置快捷键,则一般将其列在相应菜单项文本之后。1.菜单风格最常用的菜单是下拉式菜单和级联菜单。2.助记符和快捷

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

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

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