UCGUI中中设备驱动解析.pdf

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UCGUI 技术文集 UCGUI 专业网站: UCGUI 中的中的设备驱动解析 作者:UCGUI 邮箱:UCGUI@163.com 主页:http://www.UCGUI.com 版本:v 时间:2006-12-19 版本 修改说明 时间 解析UCGUI 的输入设备驱动,如触摸屏/键盘等设计接口。 v 解析UCGUI 的输出设备驱动以及输出设备的接口和写法。 2006-12-19 摘要:主要说明 UCGUI 中的设备驱动接口,包括输入设备以及输出设备驱动,并说明如何 完成UCGUI 的这些驱动。 目录 一.UCGUI 的消息处理机制. 二.UCGUI 中支持的几种输入设备. 三.UCGUI 中的触摸屏校正分析. 四.UCGUI 中的图形驱动分析. 1 UCGUI 论坛 PDF 文件使用 pdfFactory Pro 试用版本创建 UCGUI 技术文集 UCGUI 专业网站: 一.UCGUI 的消息处理机制. 1.UCGUI 的消息流转泵, UCGUI 的执行路径是单一执行绪的, 并没有专门的消息收集以 及消息处理的线程, 它是先收集到消息并马 同步处理,紧接着根据消息引起的屏幕画 面变化(窗体移动/销毁/生成/尺寸及 Z 序变化等), 绘制变化后的屏幕画面, 主要是处 理无效窗体的重绘. 在 MainTask ()这个用户入口点 , 调用 WM_Exec1(),就可以让 UCGUI 的消息流转起来. 2.消息队列问题, UCGUI 消息处理不用队列, 而是采取两个变量, 一个变量记载当前消 息,一个变量记载先前消息, 比较两者是决定是否要处理该消息, 处理完消息再将当前 消息更新到先前消息变量中.这样处理起来,比起采用消息队列, 就省了不知道多少空间 了,因为在启用MOSUE 类设备时,移动消息是非常多的.不采用消息队列, 也导致了UGGUI 中的所有的消息处理都是同步的, 但这对于UCGUI 来说也不是什么严重的问题, 并不是 必须的功能; 没有消息队列, 则每个消息的处理不能占用大量的时间, 否则严重影响消 息处理的灵敏度,造成消息的丢失.但是这些问题都是可以接受的, 因为带来的空间效率 太有帮助了. 3.消息多层挂起的问题, 由于是单一执行绪而且是同步处理所有消息, 所以如果在消息 处理过程中又导致了再次调用WM_Exec1(), 进入到新的消息LOOP 当中, 那么旧的消息 LOOP 就被永远挂起来了(对于那些芯片中CALL 栈有限的情形, 是绝对应该避免的, 因为 平白的占用了多层的CALL 栈而无法返回),在打开多话框时即产生此问题, 避免的办法 很简单: [1].仅创建对话框,不进入对话框消息LOOP ; [2].将消息LOOP 放在MainTask ()任务入口中调用. 注意:有朋友会以为会什么不为每一个消息LOOP 在多任务系统中开启单独的线程? 虽然

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档