当前位置: 首页 > 新闻资讯 > 透过交互技术分析智能眼镜的主流方案

透过交互技术分析智能眼镜的主流方案

发布时间:2024-03-16 1:07:39

  1. 智能穿戴怎么不流行了
  2. 计算机图形学论文
  3. 刘子骏的个人履历

一、智能穿戴怎么不流行了

目前手机和智能手表的普及机械手表还好卖吗

答案如下:

1.目前手机和智能手表的普及,机械手表不好卖,原因在手机尤其是智能手表的广阔市场空间造成此消彼长,导致机械手表市场每况愈下。

2.当前的智能手表市场是个什么情况呢?根据counterpointresearch公布的最新全球智能手表市场追踪报告,尽管当前整体环境面临着一定的危机,但全球智能手表市场出货量在2022年第三季度依然保持了高速发展的态势,且同比增长幅度达到了30%。需要知道的,当前的很多消费类电子产品,无论是智能手机,还是个人电脑,它们的市场销量都处于下滑当中,但与此同时,智能手表市场却展现出了极高的活力,这足以说明该市场还有很大的发展空间。

3.庞大的市场出货量足以验证,以智能体验、运动功能以及健康监测为核心,是对智能手表产品解读的正确性。那么,透过现象看本质,深究其背后更深层的原因是什么?我们一起来探讨一下。

3.1协同与独立并存

如今绝大多数智能手表依旧没有脱离对手机的依赖,想要获得完整的功能体验,还是需要手表和手机协同才可以。面对迅速发展的智能可穿戴设备市场,各企业也从自身情况出发,提高自身竞争力。

3.2回归产品本身,做好核心体验

智能手表领域中,不管是以一站式便携产品功能为主,还是主打运动配件市场,抑或是小天才等主打儿童手表市场,我们不难发现:用户的本质需求是关键,以儿童智能手表为例,消费者是父母,去除胡里花哨的功能,用户核心的需求包括:联络、位置定位、习惯培养,只有在理解家长对于子女活动及教育的基础上,研发或引入合适的应用,才能让消费者眼前一亮。

3.3小体积、高性能、数据安全

智能可穿戴设备拥有新一轮技术热潮提供的广阔前景,另一方面它需要同时满足多种苛刻需求,包括小体积、低功耗、高可靠性、高性能、数据安全等方面,各大厂商尤其要数据安全方面的维护。

4.随着5g时代渐行渐近,智能手表及智能耳机等可穿戴设备成了继智能手机之后的另一个爆发市场,随着可穿戴与ai、ar、云计算等技术深度融合,消费者将会获得全新的体验,其中智能手表凭借它的便携性、健康监测、个性化、运动性、高颜值等功能优势迅速引爆市场。

5.智能手表市场的未来

5.1智能手表虽然如今体验已较为成熟,但是它确实还有很多可以开发的地方。未来,随着这个市场的逐渐扩大,必然会有更多的厂商投身其中,已经推出智能手表产品的厂商也会对这个领域更加重视。

5.2首先先明确一点是,任何一款科技产品,都应当是以使用方便、提高人们工作效率和生活质量为目的的,这也是科技产品发展的意义和价值。那么在未来,智能手表这一产品还会有广阔天地!

可穿戴设备未来趋势化?

5g技术助燃智能可穿戴市场

回顾往昔,2013年匆匆登场的厂商大多数已经退去,一度曾经火热的各种智能可穿戴产品也已经消失或者卖身巨头。但智能可穿戴设备真的从此没有机会了吗?当然不是。

从idc公布的数据来看,智能可穿戴的出货量依然逐年增加。数据显示,2016年以来,中国的可穿戴设备出货量逐年增加,2019年前两个季度的出货量同比增速均保持在30%以上的水平。2019年第二季度,中国可穿戴设备出货量为2307万台,同比增长34.3%;其中,基础可穿戴设备(不支持第三方应用的可穿戴设备)出货量为1846万台,同比增长31.9%,智能可穿戴设备出货量为461万台,同比增长45.0%。idc预计,2019年全年将达到8000万台左右。

2015-2019年中国可穿戴设备市场出货量统计及增长情况预测

数据来源:前瞻产业研究院整理

个性、优质的体验服务将成趋势

复盘智能穿戴产品从火爆到逐渐变冷然后再度“回暖”的过程,不难发现前几年智能穿戴“遇冷”的原因。

1)首先,部分智能穿戴并不是刚需。初期用户只是为了追个新潮,赶个时髦,被赋予高科技、智能的光环。然而,对于非刚性的需求是不能持久热度的。

2)其次,大多是智能穿戴市场主要集中在智能手表、智能手环,产品同质化严重、缺乏创新,甚至走向价格战的恶性竞争。低价不是用户的主要购买驱动力。因此用户会变得理性,用户的热情也会出现一定程度的回落。

3)再有,智能穿戴功能过于简单,无法满足用户的需求,如同鸡肋。智能穿戴产品的核心是为人提供更有效、更捷的生活方式。真正的智能穿戴不仅外观时尚、佩戴舒适,而且还具备高效精准的数据分析处理能力,融合人工智能成为人类的好助手。

事实上,网络的迭代升级让人们对智能产品的需求理念转向了“体验”需求,个性化、优质的体验才是真正的“刚需”。使用不方便、体验感知差是用户最不能接受的因素。智能穿戴须从产品供应链转变成顾客需求供应链。

从用户刚性需求出发,商家要根据消费者的生活场景,发现痛点与机会点,制定场景,提供新产品、新服务,让用户体验升级,从而满足消费的隐性需求。

更多数据来源及分析请参考于前瞻产业研究院发布的《中国可穿戴设备行业市场前瞻与投资战略规划分析报告》,同时前瞻产业研究院还提供产业大数据、产业规划、产业申报、产业园区规划、产业招商引资等解决方案。

未来10年电子消费市场新的“蓝海”,智能穿戴领域市场分析

互联网的快速发展带动了众多相关产业的快速发展,其中科技电子消费产品由于更加贴近普通大众的生活发展最为迅速。如手机、电脑等终端产品目前已经成为了众多人群日常生活办公中不可缺少的部分,而以其为中心的细分市场耳机、音箱、智能手表/手环等产品在近几年也非常的火爆。

科技的进步,又推动着消费电子产品的不断升级。随着智能生活、万物互联等新概念的产生及应用,未来十年,人类或将全面进入智能化时代,市场将随之迎来众多新的机遇。而电子消费产品的升级,也将更进一步丰富和便利人们的日常生活。

智能穿戴市场是近几年电子消费市场新的增速点,其中tws耳机、智能手表/手环、智能眼镜等产品销量持续的快速增长。并且随着人们消费升级和健康理念的转变,在未来这一增长趋势还将持续扩大,成为电子消费市场新的“蓝海”。

此次,我爱音频网将详细的为大家分享一下智能穿戴市场现状,以及作为智能穿戴产品重中之重的智能手表的发展情况和发展机遇。

一、智能穿戴市场现状

1、什么是智能穿戴?

智能穿戴设备是一种广泛的概括性词语,是对应用穿戴式技术对日常穿戴产品进行智能化设计、开发出的可以穿戴的设备的总称。产品使用能够与人体直接接触,帮助用户听取或者观看内容,又或者采集人体健康信息,辅助健康运动和医疗。

其中,既包括目前已经比较常见的耳机类产品、腕带类产品、眼镜类产品,还包括未大范围普及的智能服饰、辅助医疗设备,以及未来可能呈现的延伸人类能力的智能器官、植入性芯片等。通过与智能手机或云端连接进行数据交互,实现众多丰富的功能。

2、智能穿戴市场发展

深圳市智能穿戴行业协会给出的中国智能可穿戴设备市场amc模型显示,在2006年,智能可穿戴产品进入探索期,开始挖掘用户需求,尝试产品形态,构建软件生态系统。

这一时期最引起轰动的当属2012年谷歌发布的ar增强现实眼镜googleprojectglass,后续又推出了2代产品。极具未来科技感的外观设计和全新的交互体验瞬间引爆市场,但由于技术的不成熟,产品在后续的使用过程中缺点逐渐暴露,最终导致第三代产品“难产”。

2016年市场进入启动期,主要的智能可穿戴计算系统平台及大数据服务平台搭建完毕,基于健康大数据的服务类产品逐渐成熟。随着苹果智能手表applewatch的发布,方形表盘的产品形态与传统圆形手表产生了巨大的差异性,吸引了更多的消费者。并且随着后续产品gps、蜂窝数据,以及健康监测等功能的应用,带动了智能手表市场的崛起。

进入到最近几年,智能穿戴产品迎来了高速增长时期,其中技术相对较低的tws耳机成为了最主要的发力点,销量连年攀升。并且随着主动降噪等功能的加入,受到了更多人群的认可,成为了近几年消费电子产品的主要增速点。

智能手表、智能手环、智能眼镜等其他类产品也保持着增长的势头。其中,智能手表/手环与运动健康监测功能的结合,形成了独有的差异化特征,成为了众多年轻人追捧的产品。被广泛的认为将是智能可穿戴市场未来主要的发展方向。

3、智能穿戴未来

目前的智能穿戴产品,由于产品体积的限制,绝大部分产品需要连接到手机、pc等终端设备使用,从而实现各项功能的应用以及数据的处理。

但其中,智能手表相较于其他智能穿戴产品有着体积相对较大的优势,能够搭载更多固件配置。触控屏幕使人机交互更加便捷直观,并且其手腕佩戴的使用方式也更加便于操控。随着智能手表技术的不断进步,产品正在迈向独立使用。

在完成成为如手机一样的独立性终端产品之后,智能手表或逐渐发展成为智能穿戴设备的中心,承担其他智能穿戴产品的数据处理和云端交互,成为多媒体的接入端口,更加方便用户的使用。

二、智能手表或将成为智能穿戴中心

1、智能手表介绍

智能手表是具有信息处理能力,符合手表基本技术要求的手表。智能手表使用逻辑更倾向于手机,相较于传统手表,其除了具备查看时间、日期功能之外,还拥有独立的操作系统、数据处理中心,以及众多的传感器单元,从而实现如健康运动检测、查收信息、接听电话等功能。

目前的智能手表市场产品根据其功能定位主要可以分为三类,分别是儿童智能手表、成人智能手表和老人智能手表。根据产品数据交互的形式,又可以分为蓝牙版、蓝牙/wifi版和蜂窝数据版三类。

其中,儿童手表主要注重于儿童安全问题,拥有语音通话、多重定位、一键求救、远程监听等功能;成人类手表则主打消息提醒、音乐播放、运动健康监测功能;老人智能手表侧重于便捷操控、健康监测和智能提醒。

深圳市智能穿戴行业协会最受消费者欢迎的智能手表功能分布情况调查报告显示,健康监测、通话和运动管理是目前智能手表最受欢迎的功能,受欢迎程度在受访中均达到60%以上。

2、智能手表发展状况

市场销量

目前的智能穿戴市场,除tws耳机之外,智能手表是另外一项销量增长的主要产品,并且随着功能的不断丰富,续航、性能的提升,销量逐年快速增长。

市场调研机构ccsinsights数据报告显示,2020年全球智能手表/手环整体出货量为1.93亿只,同比增长24%。其中智能手表出货量达到了1.15亿只,占比约60%。并预测到2025年,智能手表出货量将达到2.58亿只。这还仅仅是可知的品牌产品出货量,全部出货量将远超这一数据。

目前智能手表出货量市场占比苹果applewatch遥遥领先,华为出货量在2019年-2020年增速巨大,目前销量处在了第二位,三星、fitbit、华米和garmin相继其后。

智能手表产业链及关键技术

智能手表产业链与智能手表类似,上游主要包括主控芯片、传感器及算法、电池、屏幕等;中游包括工业设计及工艺,软硬件解决方案商;下游就是供应商以及消费者接触的终端品牌厂商。

在关键技术层面,主要包括研发设计能力,互联互通和算法。目前智能手表在心率、血氧监测方面已经非常成熟。算法方面有着众多厂商在持续跟进升级,精准度不断提升。在智能手表、手机app和云端的数据交互方面也已比较完善。

但如心电、温度、血压和血糖等新的健康监测功能目前还仅有少数产品支持,且数据不够准确,仅能通过波动来分析身体状况的变化。另外一方面则是续航问题,由于手表体积和电池技术的限制,在如此多的全天候监测功能下,能达到3天以上续航的产品都属于不错的了。

智能手表市场机遇

智能手表作为正在快速增长的新兴市场,目前,虽然已经有如苹果、华为这样的头部企业拥有了很大的出货量,但相较于市场容量,未来依旧有着非常可期的发展潜力。

对于其他众多新的智能手表品牌而言,由于智能手表还处于发展的初级阶段,从事这一产业链的企业除头部几个之外基本处于同一起跑线上,立身于上文中我们提到的产业链及关键技术的企业,都将迎来新的发展机遇。

另一方面,智能手表除了丰富的功能应用之外,其同样具备传统手表极强的装饰作用。因此,产品外观设计以及产品质感也是智能手表非常着重的点,能够实现极具差异性的产品外观,同样能够受到市场的认可。

三、深圳市智能穿戴行业协会

深圳市智能穿戴行业协会成立于2015年8月,是目前国内官方认证智能穿戴协会,会员单位涵盖智能穿戴领域成品厂商、方案商、芯片原厂、优质供应链厂商等300余家业内知名企业。

协会持续组织企业、大学和科研机构等围绕产业技术创新的关键问题,开展技术合作,突破产业发展的核心技术,形成产业技术标准。

建立公共技术平台,实现创新资源的有效分工与合理衔接,实行知识产权共享;实施技术转移,加速科技成果的商业化运用,提升产业整体竞争力。

联合培养人才,加强人员的交流互动,支撑产业核心竞争力的有效提升。希望更多智能穿戴领域企业加入协会共同打造智能穿戴生态链。

2021年7月29日,「2021中国智能可穿戴峰会」成功举办,获得了行业内42家优质供应链、服务商、品牌商的支持,并有2000多名粉丝报名,其中既有相关的采购人员,也有数码爱好者,还有看好这一市场并准备进入的人员。

峰会还有幸邀请到了行业内17位大咖进行了智能可穿戴主题分享。其中,深圳市智能穿戴行业协会会长郑毅以《智能穿戴发展趋势及产品动态》为主题,分享了目前智能穿戴领域的市场现状及未来发展趋势和机遇。

四、我爱音频网总结

智能穿戴设备是科技电子消费市场未来几年主要的增速点之一,众多厂商都已经开始布局。在目前的市场中,tws耳机类产品成为了销量增长的主力,由于功能和性能的不断提升,以及需要的相关技术相对较少,产品更新换代速率更快,进一步促进了其销量的快速增长。

智能手表在智能穿戴市场占据着重要的地位,销量也在持续增长。智能手表独立操作的系统、数据处理能力、以及屏幕和传感器等配置应用都在朝向着小号手机发展,未来除了本身功能的不断丰富之外,还或将占据智能穿戴设备的中心的位置。

从整体智能穿戴设备行业来看,其未来发展潜力非常巨大,可挖掘的产品类型也极其丰富,并且在新功能的应用上也处于开发阶段。目前智能穿戴领域进入的门槛相对较低,各家企业也基本处于同一起跑线上。因此,谁能先在产品工业设计、关键技术、软硬件解决方案以及后期用户服务等方面取得突破,将在未来智能穿戴市场中占据主导地位。

智能穿戴设备的国内外研究现状

国内:

近年来,智能穿戴设备的研究受到越来越多的关注,不少研究机构都开展了相关研究,其中包括中国科学院软件研究所、中国科学院电子所、中国科学院计算机网络信息中心等机构。这些研究机构主要致力于研究和开发智能穿戴设备,比如智能手表、智能眼镜等,以及智能穿戴设备的应用技术。

国外:

国外智能穿戴设备的研究也受到了越来越多的关注,其中包括美国、德国、瑞士、英国等国家的研究机构和大学,他们都在为智能穿戴设备的研发和应用技术进行深入研究。美国苹果公司和德国西门子公司也在研发和推出自己的智能穿戴设备。

健康监测不靠谱,智能手表的前途是苹果还是华为、小米们?

现在只要提起智能穿戴设备,智能手表必定是最具代表性的设备,市面上各种品牌层出不穷,无论是华为、小米还是oppo都在陆续推出新款,抢占这个无穷大的市场。但是我们在购买智能手表的时候,会关注哪一方面呢?

鉴于智能手表的身材限制,无论是电池续航还是性能表现方面目前来看,都是还是差强人意。自从苹果和谷歌在几年前推出首款各自领域的设备后,大家都在为使用率最高的可穿戴设备到底向哪个方向发展争论不休。

最具代表性的applewatech系列,算是业内发展方向的标杆,所以我们看到的更多是相对于iphone补充性功能的延展,比如健康数据,信息推送、专属应用的交互等,算是集大成于一身的设备。但是其高昂的价格,以及赢弱的续航,成为非常明显短板,而且除了iphone用户外,android用户购买后实用性太低。

性能弱,屏幕小,续航差,这些缺陷让智能手表在场景应用中有了一定的局限性,于是很多android大厂们在针对这些缺陷进行了优化和定位调整,衍生出了针对主打健康的智能手表设备,更为专业化和垂直领域的定位,获得了一部分用户的欢迎。我们看到华为、佳明和华为等品牌,专攻运动健康领域,在占据了主流市场。

看起来很不错,不仅有心率监测、血氧饱和度、睡眠呼吸检测等,甚至引入了健康评估系统,但是我们发现这些数据看起来专业,但是更多的只有娱乐性,因为传感器的误差,让这些数据只存在参考性,无法客观的呈现身体状况,可以说最多就是看个热闹而已。不过当个手表看个时间,展示推送信息,还是不错的,而且待机时间也比较长,基本解决了续航焦虑的问题。

专业度大打折扣,使得像小米这类的厂商另辟蹊径,强调手表的智能应用,而非个人健康。在去年小米发布的小米手表我们看到了小米专门定制的miuiforwatch系统,类似智能手机可以通过安装各类应用来扩展智能手机的功能和应用场景,追随者oppo也采用同样的策略推出了自己的智能手表。

看起来很酷炫,但是在实际使用中很多用户反馈并不太好,主要集中在续航和应用丰富度上。类似一个手腕上的智能手机,意味着功能多了,消耗系统资源和电量就呈指数级上升,待机市场大幅缩短,几百毫安时的电池甚至连一天的待机时间都很难支撑,在低中度使用的情况,一天一充是必须的操作。而且专门为智能手表深度定制的应用也不多,很多常用的应用都没有。在日常使用中非常的鸡肋,买了用过一段时间后就成为放在边上吃灰。

当然,可穿戴智能设备的趋势是不可逆的,只是目前受限于电池性能无法突破的困境,虽然市场已经发展多年,但是依然呈现一种混乱无章的态势。无论是是主打健康还是主打应用,在突破瓶颈后最终会殊途同归,更多的设备联动,拓展出更多的应用场景,将会让智能手表出现爆发式增长。

二、计算机图形学论文

汉字图形窗口界面设计方法及函数编程技巧

摘要 该文讨论了汉字图形窗口界面设计的一般方法,给出了窗口生成,窗口管理,菜单生成与管理,鼠标与键盘管理等实现的子函数,并给出了部分c语言源程序。这些函数的组合可以设计出丰富的汉字图形窗口界面。

一、图形窗口设计函数

主要包括窗口生成与管理函数,如窗口生成,窗口打开,窗口关闭,窗口删除等。

1.窗口结构定义方法

typedef struct gwin {

int x0,y0,x1.y1; /*窗口位置及大小*/

int border; /*窗口边框类型*/

int wcolor; /*窗口背景颜色*/

char wstate; /*窗口状态标志*/

char far *buffer; /*指向窗口缓冲区指针*/

}gwin;

在gwin中,border为窗口的边框属性,可以根据不同要求设计出多种边框类型业,以美化窗口界面。

2.窗口子函数

窗口生成子函数:gwin * gwincreate(x0,y0,x1,y1,border,colo

r)

int x0,y0,x1,y1; /*窗口位置及大小*/

bordermode border; /*窗口边框类型*/

int color; /*窗口背景颜色*/

窗口显示子函数:gwindisplay(gwin *w)

w为用gwincreate生成的窗口指针,即此函数画出窗口。

窗口打开子函数:gwinopen(gwin * w)

此函数调用gwindisplay来显示窗口,并存储屏幕。

窗口关闭子函数:gwinclose(gwin * w)

此函数关闭已打开的窗口,恢复屏幕,但此窗口数据还保存,可再次打开。

窗口删除子函数:gwinkill(gwin * w)此窗口彻底清除窗口,不可重新打开。

3.部分程序

下面给出实现上述功能的c语言程序

/*windows create*/

#include <stdio.h>

#include <dos.h>

#include <stdilb.h>

#include <string.h>

#include <conio.h>

#include <graph.h>

#define cr 0x0d

#define esc 0x1b

#define left 0x4b

#define right 0x4d

#define up 0x4d

#define down 0x50

#define open 1 /*窗口为打开状态*/

#define close 0 /*窗口为关闭状态*/

#define mouse 0 /*是否有鼠标移动*/

/*定义窗口边框类型*/

typedef enum {

noborder,/*普通窗口,系统默认值*/

tborder,/*窗口有凸边框类型*/

wborder,/*窗口有凹边框类型*/

twborder,/*窗口有凸凹边框类型*/

wtborder,/*窗口有凹凸边框类型*/

cborder,/*窗口有汉字边框类型*/

... /*其它窗口类型*/

}bordermode;

gwin * gwincreate(x0,y0,x1,y1,border,color)

int x0,y0,x1,y1;

bordermode border;

int color;

{

gwin *w;

w=malloc(sizeof(gwin));

w->x0=x0;

w->y0=y0;

w->x1=x1;

w->y1=y1;

if(border==noborder)w->border=noborder;

if(border==wborder)w->border=wborder;

if(border==tborder)w->border=tborder;

if(border==twborder)w->border=twborder;

if(border==wtborder)w->border=wtborder;

if(border==cborder)w->border=cborder;

w->wcoloe=color;

w->buffer=null;

return(w);

}

void gwindisplay(gwin * w)

{

if(w->border==noborder)drawgwin(w,noborder);

if(w->border==wborder)drawgwin(w,wborder);

if(w->border==tborder)drawgwin(w,tborder);

if(w->border==wtborder)drawgwin(w,twborder);

if(w->border==twborder)drawgwin(w,twborder);

if(w->border==cborder)drawgwin(w,cborder);

}

void gwinopen(gwin * w)

{

if(w->wstate==open)return 0;

w->buffer=(char far *)malloc((unsigned int))

-imagesize(w->x0,w->y0,w->x1,w->y1)

-getimage(w->x0,w->y0,w->x1,w->y1,w->buffer);

w->wstate=open;

gwindisplay(w);

}

void gwinclose(gwin * w)

{

if(w->wstate==close)return 0;

-putimage(w->x0,w->y0,w->buffer,-gpset);

free((char far *) w->buffer);

w->wstate=colse;

}

void gwinkill(gwin * w)

{

if(w->wstate==open)gwinclose(w);

free(w);

}

二、菜单窗口界面生成与管理子函数

1.菜单结构定义说明

typedef struct g

menu{

gwin * w; /*含有菜单的窗口*/

char * * chstring;/*菜单中汉字串指针*/

int xnum;/*水平方向菜单分布项*/

int ynum;/*垂直方向菜单分布项*/

int hzcolor/*汉字颜色*/

int mnow /*光标位置*/

int mtotal/*菜单总个数*/

}gmenu;

2.菜单生成与管理子函数

菜单生成子函数:gmenu * menucreate(x,y,xnum,ynum,border,h

zcolor,bcolor,chstring)

int x,y;/*菜单左上角位置*/

int xnum,ynum;/*菜单在x,y方向个数*/

bordermode border;/*菜单边框类型*/

int hzcolor; /*汉字颜色*/

int bcolor; /*菜单背景颜色*/

char * * chstring; /*汉字串*/

菜单打开子函数:menuopen(gmenu * m)

m为用menugreate生成的菜单直针。

菜单驱动子函数:menudrive(gmenu * m)

此函数提供用鼠标或键盘选择菜单项的方法。

菜单关闭子函数:menuclose(gmenu *m)

此函数关闭已打开的菜单,恢复屏幕,但此菜单数据还保存,可再次打开。

菜单删除子函数:menukill(gmenu * m)

此菜单被彻底清除,不可重新打开。

3.实现上述功能子函数的源程序代码

gmenu * menucreate(x,y,xnum,ynum,border,hzcolor,bcolor,c

hstring)

int x,y,xnum,ynum;

bordermode border;

int hzcolor,bcolor;

char * * chstring;

{

gwin *w,gmenu *m;

m=malloc(sizeof(gmenu));

m->=chstring=chstring;

m->=xnum=xnum;

m->=ynum=ynum;

m->=hzcolor=hzcolor;

m->=mnow=1

m->=mtotal=number_of_menu(m->=chstring);

w=(gwin *)gwincreate(x,y,x+xnum * longest(chstring),

y+(ynum-1)+c0,border,bcolor);

m->=w=w

return m;

}

其中,number_of_menu(string)为求串中菜单项个数的函数,longest(string)为求串中最长项长度的函数。

其它子函数可参照窗口函数设计出,此处限于篇幅,不再给出。

三、下拉式菜单设计方法

有了第一,第二节的窗口设计及菜单设计函数,可以很方便的定义出下拉式及弹出式菜单,菜单可以层层嵌套,主子关系及热键可以自由定义,有了窗口及菜单函数,可以组合设计出风格迥异的应用程序界面。本节的子函数包括:根菜单生成(主菜单)、下拉式菜单生成、菜单连接、菜单初始化、菜单驱动、菜单关闭、菜单删除。

1.下拉式菜单结构定义方法

typedef struct pmenu{

gmenu * m;/*定义菜单*/

int pstate; /*下拉式菜单状态*/

int pid; /*菜单标识码*/

struct pmenu *father; /*定义父菜单*/

struct pmenu *son /*定义子菜单*/

char hotkey[maxson+1];/*定义热键*/

}pmenu;

2.下拉式菜单生成与管理子函数

根菜单生成子函数:pmenu *proot(pid,x,y,border,hzcolor,bco

lor,chstring)

int pid;/*根菜单标识码,一般为000*/

int x,y;/*菜单在x,y方向个数*/

bordermode border;/*菜单边框类型*/

int hzcolor;/*汉字颜色*/

int bcolor;/*菜单背景颜色*/

char * * chstring;/*汉字串*/

下拉式菜单生成子函数:pmenu *pcreate(pid,x,y,border,hzcol

or bcolor,chstring

参数含义同上,pid值一般取为100,200,300等,利用此函数可生成普通弹出式菜单。

菜单连接子函数:void plink(pmenu * p1,int n,pmenu * p2)

此函数建立两个菜单p1,p2之间的主次关系,p1为父菜单,p2为子菜单,执行此菜单,则把p2挂在了p1的第n个菜单项上。

下拉式菜单初始化子函数:pint();

菜单关闭子函数:pclose();

菜单删除子函数:pkill();

菜单中定义热键子函数:hotkey(pmenu *p1,int n,int vascii);

pmenu *p1;/*下拉式菜单p1*/

int n;/*菜单p1中菜单个数*/

int vascii;/*定义热键的ascii码值*/

利用此函数可定义弹出式菜单p1中任意项n的键盘热键,该键的ascii码值为vascii。

3.实现上述功能子函数的源程序代码

pmenu *rp,*cp;

pmenu * proot(pid,x,y,border,hzcolor,bcolor,chstring)

int pid,x,y;

bordermode border;

int hzcolor,bcolor;

char * * chstring;

{

pmenu *p;

int i;

rp=cp=malloc(sizeof(pmenu));

p->pstate=close;

p->pid=pid;

p->m=menucreate(x,y,num_of_menu(chstring),1,border,hzc

olor,bcolor,chstring);

p->father=null;

for(i=1;i<maxson+1;i++)

{

p->son[i]=null;

p->hotkey[i]=0;

}

return(p);

}

void plink(pmenu *p1,int n,pmenu *p2)

{

p1-son[n]=p2;

p2->father=p1;

}

其它子函数可参照菜单函数设计出,此处限于篇幅,不再给出。

四、其它辅助函数

计算菜单项个数的函数

int number_of_menu(char * * chstring)

{

int i;

for(i=0;chstring[i]!=null;i++);

return(i);

}

键盘与鼠标处理子函数

int get_key_mouse(int *x,int *y)

此函数用来同时接收键盘及鼠标,有按键时返回该键的ascii码,有鼠标操作时返回鼠标的x,y座标,提供给程序作处理。

仅供参考,请自借鉴。

希望对您有帮助。

三、刘子骏的个人履历

抱歉,由于模型 ,我并不知道刘子骏的个人履历。

Top