第章菜单键盘和鼠标ppt课件

上传人:痛*** 文档编号:176485366 上传时间:2022-12-22 格式:PPT 页数:83 大小:1.46MB
返回 下载 相关 举报
第章菜单键盘和鼠标ppt课件_第1页
第1页 / 共83页
第章菜单键盘和鼠标ppt课件_第2页
第2页 / 共83页
第章菜单键盘和鼠标ppt课件_第3页
第3页 / 共83页
点击查看更多>>
资源描述
Windows程序设计教程程序设计教程第第8章章 菜单、键盘和鼠标菜单、键盘和鼠标 菜单、键盘和鼠标是实现人机交互的菜单、键盘和鼠标是实现人机交互的最常用方式。最常用方式。在在windows运用程序的设计过程中,运用程序的设计过程中,合理地呼应三者的操作,会使程序更加人合理地呼应三者的操作,会使程序更加人性化。性化。本章将详细引见有关菜单、键盘与鼠本章将详细引见有关菜单、键盘与鼠标的知识点。标的知识点。菜单菜单8.1键盘键盘8.2鼠标鼠标8.38.1 菜菜 单单 经过菜单接受用户命令,是一种很常经过菜单接受用户命令,是一种很常用的交互方法,同时也是一种很有效的方用的交互方法,同时也是一种很有效的方法。法。大部分大部分Windows运用程序都运用下拉运用程序都运用下拉式菜单实现用户本人的函数,而不需求在式菜单实现用户本人的函数,而不需求在窗口中提供多个按钮以完成这些功能。窗口中提供多个按钮以完成这些功能。8.1.1 8.1.1 菜单根本知识菜单根本知识 菜单是用于显示一组选项即菜单项菜单是用于显示一组选项即菜单项的下拉窗口,用户可以从这些菜单项中进的下拉窗口,用户可以从这些菜单项中进展选择。展选择。在在Windows窗口中,菜单分为两种:窗口中,菜单分为两种:下拉式菜单和弹出式菜单又称为上下文下拉式菜单和弹出式菜单又称为上下文菜单。菜单。1 1下拉式菜单下拉式菜单 图图8.1 下拉式菜单下拉式菜单 2 2弹出式菜单弹出式菜单 图图8.2 弹出式菜单弹出式菜单 8.1.2 8.1.2 创建下拉式菜单创建下拉式菜单 1 1编程准那么编程准那么 虽然没有规定菜单设计的规范,但虽然没有规定菜单设计的规范,但有许多关于菜单设计和组织的协议。有许多关于菜单设计和组织的协议。1文件文件File菜单应该位于最左边。菜单应该位于最左边。它包含一切面向文件的功能如它包含一切面向文件的功能如New、Open、Save、Print等和退出函数。等和退出函数。退出菜单项应位于退出菜单项应位于File菜单的最底端,菜单的最底端,并且与其他菜单项之间存在一条分隔线。并且与其他菜单项之间存在一条分隔线。2编辑编辑Edit菜单是紧接文件菜单菜单是紧接文件菜单的下一个菜单。的下一个菜单。此菜单包含一切的编辑功能,如复制、此菜单包含一切的编辑功能,如复制、粘贴、拷贝、重做等。粘贴、拷贝、重做等。3视图视图View菜单包含那些控制菜单包含那些控制和影响运用程序任务区域外貌的菜单项。和影响运用程序任务区域外貌的菜单项。4窗口窗口Window菜单在多文档菜单在多文档MDI风格的运用程序中运用。风格的运用程序中运用。5协助协助Help菜单是菜单条中最右菜单是菜单条中最右边的菜单。边的菜单。它包含提供应用程序的协助文档的菜它包含提供应用程序的协助文档的菜单项。单项。2 2创建菜单创建菜单 在在Visual C+中,并不为对话框工程中,并不为对话框工程提供默许的菜单栏。提供默许的菜单栏。本节将经过一个实例讲述如何为一个本节将经过一个实例讲述如何为一个对话框工程添加自定义的菜单栏。对话框工程添加自定义的菜单栏。图图8.3 sample001的最初运转结果的最初运转结果 图图8.4 【Insert Resource】对话框】对话框 图图8.5 【Resource View】视图区】视图区 图图8.6 修正菜单修正菜单ID属性对话框属性对话框 3 3添加菜单项添加菜单项 目前只是创建了一个空白的菜单栏,目前只是创建了一个空白的菜单栏,并没有为其添加菜单项。并没有为其添加菜单项。本例为空白菜单栏添加菜单及菜单项。本例为空白菜单栏添加菜单及菜单项。实现过程是为菜单栏添加一个【绘图】实现过程是为菜单栏添加一个【绘图】菜单,然后为该菜单添加【直线】和【圆菜单,然后为该菜单添加【直线】和【圆圈】两个菜单项。圈】两个菜单项。图图8.7 【Menu Item Properties】菜单属性对话框】菜单属性对话框 图图8.8 插入绘图菜单项插入绘图菜单项 8.9 【Menu Item Properties】对话框】对话框 图图8.10 添加菜单项添加菜单项 图图8.11 主对话框主对话框 图图8.12 主对话框的属性对话框主对话框的属性对话框 图图8.13 sample0801的运转结果的运转结果 8.1.3 8.1.3 添加音讯呼应函数添加音讯呼应函数 菜单是用户与运用程序的桥梁,用户菜单是用户与运用程序的桥梁,用户可以经过选择相应的菜单项来实现特定的可以经过选择相应的菜单项来实现特定的功能。功能。在上述几个小节中,只是简单地添加在上述几个小节中,只是简单地添加了一些菜单项,但菜单项并不能实现什么了一些菜单项,但菜单项并不能实现什么功能。功能。本节将引见如何为一个菜单项添加命本节将引见如何为一个菜单项添加命令处置函数。令处置函数。图图8.14 【MFC Class Wizard】对话框】对话框 图图8.15 【Add Member Function】对话框】对话框 图图8.16 程序程序sample0801的运转结果的运转结果8.1.4 8.1.4 弹出式菜单弹出式菜单 普通在鼠标右键单击窗口时,会出现普通在鼠标右键单击窗口时,会出现弹出式菜单。弹出式菜单。下拉式菜单可以在图形化的界面下进下拉式菜单可以在图形化的界面下进展加载,而弹出式菜单需求用户手工编写展加载,而弹出式菜单需求用户手工编写代码动态地加载。代码动态地加载。假设想在程序中动态地创建弹出式菜假设想在程序中动态地创建弹出式菜单,就必需用到单,就必需用到MFC中的菜单类中的菜单类CMenu。图图8.17 编辑菜单资源编辑菜单资源 图图8.18 添加添加WM_RBUTTONDOWN的音讯呼应函数的音讯呼应函数 图图8.19 添加菜单命令呼应函数添加菜单命令呼应函数 图图8.20 查看弹出式菜单查看弹出式菜单 图图8.21 进展画圆操作进展画圆操作8.2 键键 盘盘 当用户操作键盘时,会产生相应的键当用户操作键盘时,会产生相应的键盘音讯并发送给运用程序。盘音讯并发送给运用程序。然后运用程序中相应的键盘音讯呼应然后运用程序中相应的键盘音讯呼应函数会完成其特定的任务。函数会完成其特定的任务。本节将对本节将对Windows中键盘的相关机制中键盘的相关机制进展引见。进展引见。8.2.1 8.2.1 键盘的虚拟码键盘的虚拟码 当用户按下键盘上的某个按键时,键当用户按下键盘上的某个按键时,键盘的接口会产生与该按键相对应的编码。盘的接口会产生与该按键相对应的编码。这个编码被称为键的扫描码。这个编码被称为键的扫描码。而键的扫描码存在设备相关性,因此而键的扫描码存在设备相关性,因此为了方便程序设计,为了方便程序设计,Windows为每个按键为每个按键提供了相应的与设备无关的编码,而这个提供了相应的与设备无关的编码,而这个编码被称为虚拟码。编码被称为虚拟码。因此在因此在Windows运用程序的编写过程运用程序的编写过程中,用户可以忽略扫描码,而直接运用虚中,用户可以忽略扫描码,而直接运用虚拟码来对键盘进展操作。拟码来对键盘进展操作。8.2.2 8.2.2 键盘呼应键盘呼应 经过键盘音讯,经过键盘音讯,Windows运用程序可运用程序可以得知键盘事件。以得知键盘事件。普通情况下,键盘音讯分为两类:按普通情况下,键盘音讯分为两类:按钮音讯和字符音讯。钮音讯和字符音讯。每当用户按下或松开一个键时,就会每当用户按下或松开一个键时,就会产生一个按键音讯。产生一个按键音讯。当按键产生了一个可显示的字符时,当按键产生了一个可显示的字符时,就产生了一个字符音讯。就产生了一个字符音讯。图图8.22 添加添加OnKeyDown()呼应函数呼应函数 图图8.23 程序程序sample0803的运转结果的运转结果8.3 鼠鼠 标标 鼠标和键盘是计算机中最常用的输入设备。在Windows中,鼠标同键盘一样,其输入也是以音讯的方式输入的。本节将对鼠标的呼应原理与运用进展详细引见。8.3.1 8.3.1 鼠标音讯鼠标音讯 当用户对计算机操作时,鼠标的运用当用户对计算机操作时,鼠标的运用是必不可少的。是必不可少的。在平常运用计算机的时候,用户按下在平常运用计算机的时候,用户按下鼠标按钮或是挪动鼠标的时候,都会产生鼠标按钮或是挪动鼠标的时候,都会产生相应的事件。相应的事件。系统会根据不同的事件发送不同的音系统会根据不同的事件发送不同的音讯。讯。假设运用程序中有该事件的呼应函数,假设运用程序中有该事件的呼应函数,系统就会调用该音讯对应的函数完成特定系统就会调用该音讯对应的函数完成特定的义务。的义务。鼠标音讯可以分为两类:客户区鼠标鼠标音讯可以分为两类:客户区鼠标音讯和非客户区鼠标音讯。音讯和非客户区鼠标音讯。1 1客户区鼠标音讯客户区鼠标音讯 鼠标在客户区产生的音讯被称为客户区鼠标音讯。常用的客户区鼠标音讯如表8.4所示。2 2非客户区鼠标音讯非客户区鼠标音讯 鼠标在非客户区产生的音讯称为非客户区鼠标音讯。常用的非客户区鼠标音讯如表8.5所示。8.3.2 8.3.2 鼠标呼应鼠标呼应 1 1呼应客户区鼠标音讯呼应客户区鼠标音讯 在在MFCMFC中,客户区鼠标音讯处置中,客户区鼠标音讯处置函数的原型为:函数的原型为:afx_msg void OnMsgName(UINT nFlags,CPoint afx_msg void OnMsgName(UINT nFlags,CPoint point)point)图图8.24 添加音讯呼应函数添加音讯呼应函数 图图8.25 最初圆形显示最初圆形显示 图图8.26 扩展圆形显示扩展圆形显示2 2呼应非客户区鼠标音讯呼应非客户区鼠标音讯 在在Windows中,对于非客户区音讯都中,对于非客户区音讯都做了默许的处置。做了默许的处置。其这样做的目的就是为了让用户最好其这样做的目的就是为了让用户最好不要干涉这些本应由系统来处置的音讯。不要干涉这些本应由系统来处置的音讯。但在某些特殊情况下,用户可以经过但在某些特殊情况下,用户可以经过非客户区鼠标音讯来完成特定的义务。非客户区鼠标音讯来完成特定的义务。正由于正由于Windows不希望用户干涉非客不希望用户干涉非客户区鼠标音讯,因此在户区鼠标音讯,因此在Visual C+中没有中没有提供处置非客户区鼠标音讯的编辑工具。提供处置非客户区鼠标音讯的编辑工具。假设想要运用非客户区鼠标音讯,可假设想要运用非客户区鼠标音讯,可以手工添加非客户区鼠标音讯的音讯映射以手工添加非客户区鼠标音讯的音讯映射宏及其对应的音讯呼应函数。宏及其对应的音讯呼应函数。图图8.27 程序程序sample0805的运转结果的运转结果 8.3.3 8.3.3 鼠标光标鼠标光标 鼠标光标是鼠标与用户之间的接口。鼠标光标是鼠标与用户之间的接口。在在Windows中,鼠标光标的特性是在中,鼠标光标的特性是在WNDCLASS构造中定义的,而每个窗口都构造中定义的,而每个窗口都有其相应的有其相应的WNDCLASS构造。构造。从前面的章节中,读者曾经了解到,从前面的章节中,读者曾经了解到,当运用全局函数当运用全局函数AfxRigisterWndClass()注注册窗口类型时,需求初始化册窗口类型时,需求初始化WNDCLASS构构造中的字段。造中的字段。AfxRigisterWndClass()函数原型如下:函数原型如下:LPCTSTR AfxRigisterWndClass(UINT nClassStyle,HCURSOR hCursor=0,HBRUSH hbrBackground=0,HICON hIcon=0)8.3.4 8.3.4 鼠标键盘鼠标键盘 在讲述了鼠标与键盘的知识点后,本在讲述了鼠标与键盘的知识点后,本节将二者结合起来。节将二者结合起来。下面经过一个基于单文档的运用程序下面经过一个基于单文档的运用程序实例来引见鼠标键盘的综合运用。实例来引见鼠标键盘的综合运用。本例主要实现的功能是利用鼠标在客本例主要实现的功能是利用鼠标在客户区绘制图形。户区绘制图形。图图8.28 添加鼠标呼应添加鼠标呼应 图图8.29 添加【重绘操作】菜单项添加【重绘操作】菜单项 图图8.30 【重绘操作】菜单项所对应的属性对话框【重绘操作】菜单项所对应的属性对话框 图图8.31 添加菜单项呼应添加菜单项呼应 图图8.32 程序程序sample0806的运转结果的运转结果小结小结 本章主要引见了人机交互的重要角本章主要引见了人机交互的重要角色色菜单、鼠标和键盘。菜单、鼠标和键盘。首先引见了有关菜单的根底知识,并首先引见了有关菜单的根底知识,并结合详细的实例详细讲解了利用结合详细的实例详细讲解了利用Visual C+进展下拉式菜单、经过代码动态控制进展下拉式菜单、经过代码动态控制菜单以及浮动菜单的编程。菜单以及浮动菜单的编程。对于鼠标和键盘的操作,只是讲述了对于鼠标和键盘的操作,只是讲述了如何捕获二者的音讯。如何捕获二者的音讯。最后经过一个实例讲述了鼠标、键盘最后经过一个实例讲述了鼠标、键盘和菜单的综合运用。和菜单的综合运用。上机指点上机指点 实验一:创建下拉式菜单实验一:创建下拉式菜单 实验内容实验内容 创建一个基于对话框的运用程序创建一个基于对话框的运用程序TestOne。然后为其添加一个菜单栏。然后为其添加一个菜单栏。运转结果如图运转结果如图8.31所示。所示。图图8.33 实验一的运转结果实验一的运转结果 实验目的实验目的 为一个基于对话框的运用程序添加一为一个基于对话框的运用程序添加一个菜单栏。个菜单栏。实现思绪实现思绪 在在8.1.2节中曾经引见了如何为对话框节中曾经引见了如何为对话框工程添加一个绘图菜单。工程添加一个绘图菜单。按照按照8.1.2节中的步骤,设置图节中的步骤,设置图8.33中中的有关属性。的有关属性。实验二:识别键盘按键实验二:识别键盘按键 实验内容实验内容 创建一基于单文档的运用程序创建一基于单文档的运用程序TestTwo。创建一基于单文档的运用程序,每按创建一基于单文档的运用程序,每按下一个键盘按键,就会弹出一个音讯对话下一个键盘按键,就会弹出一个音讯对话框,提示按下的是哪一个按键。框,提示按下的是哪一个按键。运转结果如图运转结果如图8.34所示。所示。图图8.34 实验二的运转结果实验二的运转结果 实验目的实验目的 熟习键盘上常用按键所对应的虚拟码,熟习键盘上常用按键所对应的虚拟码,并能对键盘音讯添加呼应。并能对键盘音讯添加呼应。实现思绪实现思绪 在在8.2.2节中引见了如何呼应键盘上面节中引见了如何呼应键盘上面4个箭头的事件。个箭头的事件。在此只需熟习一下按键的虚拟码即可。在此只需熟习一下按键的虚拟码即可。实验三:键盘与鼠标的结合实验三:键盘与鼠标的结合 实验内容实验内容 创建一基于单文档的运用程序创建一基于单文档的运用程序TestThree。当运转该程序时,按下当运转该程序时,按下Ctrl+Shift+鼠鼠标左键,弹出一个音讯对话框。标左键,弹出一个音讯对话框。运转结果如图运转结果如图8.35所示。所示。图图8.35 实验三的运转结果实验三的运转结果 实验目的实验目的 结合鼠标音讯与键盘上面的按键,进结合鼠标音讯与键盘上面的按键,进展详细操作。展详细操作。实现思绪实现思绪 首先添加按下鼠标左键所对应的音讯首先添加按下鼠标左键所对应的音讯呼应函数。呼应函数。然后在该函数里面判别能否也按下了然后在该函数里面判别能否也按下了Ctrl和和Shift键。键。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!