|
|
| | -文章搜索 - 最新文章 - | |
C语言嵌入式系统编程修炼之键盘操作篇 |
| 发布时间:2006年12月20日 点击次数:83 |
| 来源: 作者: |
功能键的问题在于,用户界面并非固定的,用户功能键的选择将使屏幕画面处于不同的显示状态下。 处理功能键 功能键的问题在于,用户界面并非固定的,用户功能键的选择将使屏幕画面处于不同的显示状态下。例如,主画面如图1:
图1 主画面 当用户在设置XX上按下Enter键之后,画面就切换到了设置XX的界面,如图2:
程序如何判断用户处于哪一画面,并在该画面的程序状态下调用对应的功能键处理函数,而且保证良好的结构,是一个值得思考的问题。 让我们来看看WIN32编程中用到的"窗口"概念,当消息(message)被发送给不同窗口的时候,该窗口的消息处理函数(是一个callback函数)最终被调用,而在该窗口的消息处理函数中,又根据消息的类型调用了该窗口中的对应处理函数。通过这种方式,WIN32有效的组织了不同的窗口,并处理不同窗口情况下的消息。 我们从中学习到的就是: (1)将不同的画面类比为WIN32中不同的窗口,将窗口中的各种元素(菜单、按钮等)包含在窗口之中; (2)给各个画面提供一个功能键"消息"处理函数,该函数接收按键信息为参数; (3)在各画面的功能键"消息"处理函数中,判断按键类型和当前焦点元素,并调用对应元素的按键处理函数。 /* 将窗口元素、消息处理函数封装在窗口中 */ 在窗口的消息处理函数中调用相应元素按键函数的过程类似于"消息映射",这是我们从WIN32编程中学习到的。编程到了一个境界,很多东西都是相通的了。其它地方的思想可以拿过来为我所用,是为编程中的"拿来主"。 在这个例子中,如果我们还想玩得更大一点,我们可以借鉴MFC中处理MESSAGE_MAP的方法,我们也可以学习MFC定义几个精妙的宏来实现"消息映射"。 处理数字键 用户输入数字时是一位一位输入的,每一位的输入都对应着屏幕上的一个显示位置(x坐标,y坐标)。此外,程序还需要记录该位置输入的值,所以有效组织用户数字输入的最佳方式是定义一个结构体,将坐标和数值捆绑在一起: /* 用户数字输入结构体 */ 那么接收用户输入就可以定义一个结构体数组,用数组中的各位组成一个完整的数字: InputNum inputElement[NUM_LENGTH]; /* 接收用户数字输入的数组 */ 将数字每一位输入的坐标和输入值捆绑后,在数字键处理函数中就可以较有结构的组织程序,使程序显得很紧凑。 整理用户输入 继续第2节的例子,在第2节的onNumKey函数中,只是获取了数字的每一位,因而我们需要将其转为有效数据,譬如要转为有效的XXX数据,其方法是: /* 从2进制数据位转为有效数据:XXX */ 反之,我们也可能需要在屏幕上显示那些有效的数据位,因为我们也需要能够反向转: /* 从有效数据转为2进制数据位:XXX */ 当然在上面的例子中,因为数据是2进制的,用power函数不是很好的选择,直接用"<< >>"移位操作效率更高,我们仅是为了说明问题的方便。试想,如果用户输入是十进制的,power函数或许是唯一的选择了。 总结 本篇给出了键盘操作所涉及的各个方面:功能键处理、数字键处理及用户输入整理,基本上提供了一个全套的按键处理方案。对于功能键处理方法,将LCD屏幕与Windows窗口进行类比,提出了较新颖地解决屏幕、键盘繁杂交互问题的方案。 计算机学的许多知识都具有相通性,因而,不断追赶时髦技术而忽略基本功的做法是徒劳无意的。我们最多需要"精通"三种语言(精通,一个在如今的求职简历里泛滥成灾的词语),最佳拍档是汇编、C、C++(或JAVA),很显然,如果你"精通"了这三种语言,其它语言你应该是可以很快"熟悉"的,否则你就没有"精通"它们。 |
|
|
|
|
[消费类电子] 相关文章: 嵌入式人才的发展方向简介:
嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。 嵌入式系统是软硬结合的东西,搞嵌入式...... 分立器件作用关键 中国堪称主战场
TI达芬奇技术与数字媒体处理器助力CEL汽车视觉平台
嵌入式操作系统和Linux
机载电视制导VGA/TV转换器的设计与实现
如何在简历中赢得企业20%的弹力薪资
海归就业集中五大热门行业 总体而言形势趋好
IEEE汽车电子与安全国际会议在沪举行
劳动力景气指数:IT就业市场供求良好
京毕业生就业薪酬报告 IT拼不过金融 |
|
|
|