UCGUI窗体管理及消息处理机制分析.docVIP

UCGUI窗体管理及消息处理机制分析.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UCGUI窗体管理及消息处理机制分析.doc

UCGUI窗体管理及消息处理机制分析 ----多对话框/模态窗体/透明窗体支持分析 作者:ucgui 日期: 2005-09-08[v 2005-06-30完成] 来源: 版本: v 版本 修改说明 时间 v 实现UCGUI中多对话框支持。 2005-06-30 v 增加UCGUI中各种基本消息介绍?。 增加窗体消息LOOP机制介绍。 增加对话框结构说明及其消息LOOP处理移到M?ainTask函数中由用户处理的原因剖析,并详细分析了对话框中按钮的点击消息传送到用户自定义对话框回调函数中处理的传递流程。 增加外部输入设备消息处理机制介绍。如滑动操作外设MOUSE及触摸屏输入消息 WM_TOUCH 的处理机制,及按键式操作外设消息 WM_KEY 处理机制。 增加一种更简单的多对话框支持的方法及说明。 增加模态对话框实现原理分析。 增加透明窗体实现原理分析。 2005-09-08 问题的提出: [求助]关于对话框处理程序中,想在OK按钮按下后想弹出一个消息框,该怎么做?直接加在程序中好像不行,如何让消息框弹出后成为模态窗体呢?请版主帮帮忙。 [解析]在UCGUI中,对话框只支持单个对话框窗体,不支持多个独立的对话框,现在我们从其源码来分析一下它为什么支持单个对话框窗体以及如何改进它以支持多个独立对话框,要讲解这个问题我们必须首先理解UCGUI中的窗体消息LOOP,没有消息LOOP窗体就是死水一潭,不能接受任何外界的输入,只是一个画在那里的图画而已。 [声明]本文中提到的源码均为UCGUI3.24版源码,新版UCGUI源码会有改动,请下载本文示例代码来结合阅读本文。 摘要: 本文主要介绍了UCGUI中的对话框的消息处理机制,并指出在现有UCGUI上如何增加多窗体支持,并在分析解决问题时着重介绍了其输入设备消息WM_TOUTCH及WM_KEY两类消息处理方法,并同时初步指出一种在UCGUI中实现模态对话框以及透明窗体的原理说明,不还有窗体重画消息WM_PAINT消息处理原理。 一、各种基本消息介绍及处理流程----对话框内部消息流转及外部消息LOOP分析. UCGUI是采用的消息驱动的,它专门有对外的一套收集消息的接口, 我在模似器中, 就是通过LCD模拟显示屏窗口的MOUSE消息,将MOUSE消息传入到这个接口中, 以驱动UCGUI中的窗体的。 UCGUI中的消息驱动其实与WINDOWS的是类似的,几种基本的消息与WINDOWS是一样的,但UCGUI的更简单且消息更少,对于一些消息的处理得也很简化,没有WINDOWS那么多的消息种类及复杂处理。在WINDOWS中,如我们处理按钮控件的点击事件的是在WM_COMMAND消息中,通过按钮的标志ID来区分不同的按钮,所以按钮标志ID必须不同的,否则无法区别开 除非不在父窗体的WM_COMMAND消息中处理 。 UCGUI中一些基本的消息如下: WM_CREATE---窗体创建消息,每创建一个窗体完后都会向该窗体发送此消息,如WM_CreateWindowAsChild创建完窗体均会发一此消息,但在UCGUI中对于此消息的很少处理,如果用户想在对话框之后做些初始化操作或是创建其它子窗体的动作,可以处理此消息,不过对话框一般有专门的初始化消息WM_INIT_DIALOG,它是在创建对话框后发送的。 WM_SHOW-----显示窗体消息,此消息在UCGUI中各控件窗体内均未作处理,如果你通过消息发送函数来发送这类没有在UCGUI中各窗体中处理的消息,是没有有什么响应的,不要感到奇怪。要显示窗体一般是通过WM_ShowWindow 函数实现的,这个函数做的也就是改变窗体显示标志[WM_SF_ISVIS],并使窗体矩形区域无效[WM_InvalidateWindow ]以产生重画消息。 WM_SET_ENABLE---设置窗体不能使用消息,UCGUI中有一种复选框为不可改变的,但是这个功能也不完全,如果你对着UCGUI中的按钮使用WM_DisableWindow 来设置其无效,按钮照样还是可以使用,不过要改进这些小毛病还是很容易的,这里只是提醒大家UCGUI中很多没有实现的小地方,不要到时候使用时感到很奇怪,感觉到奇怪时最好去看看源码,看看源码中是否实现了此功能,不要郁闷。 WM_PAINT ----窗体重画消息,当窗体所在区域全部或是部分区域无效时,系统将会发出该重画消息,将无效区域重画,但UCGUI中的处理比较简单,都是将窗体全部区域重画;如果用户自己想在窗体上画上一些信息,一般都在在该消息当中画,UCGUI中的各种提供的系统控件都必须在其系统的提供的消息回调函数中处理此消息来画出控件。当由外部输入操作引起无效窗体区域产生时,系统都会在消息处理中发送该消息到窗体消息回调函数中,以重

文档评论(0)

lnainai_sj + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档