第39节emWin(ucgui)对话框基础知识.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STM32-V5 开发板 STemW in 教程 STM32-V5 开发板 STemW in 教程 第39章 对话框基础知识 在上期教程我们讲解了控件的基础知识,本期教程我们接着讲解一下对话框的基础知识,有了这两部分 的基础知识后,后面我们就可以进行每个控件的应用讲解了。 控件可以创建并独立使用,因为它们本质上就是窗口。如果在对话框上面创建控件的话,就更加的方便 了,这样就可以充分利用 GUIBulder。 39. 1 对话框的基本原理 39. 2 创建对话框 39. 3 对话框 API 39. 4 总结 39.1 对话框的基本原理 39.1.1 输入焦点 窗口管理器能记住用户使用触摸屏、鼠标、键盘或用其他方式最终所选择的窗口或窗口对象。该窗口会 收到键盘输入消息,即具有输入焦点。追踪输入焦点的主要原因是为了确定键盘命令的发送目的地。具有输 入焦点的窗口会接收由键盘所生成的事件。如果要将对话框内的输入焦点移至下一个焦点对话框项目,可以 使用 GUI_KEY_TAB 键。如果要向后移动,则可以使用 GUI_KEY_BACKTAB。 39.1.2 阻塞式和非阻塞式对话框 对话框窗口可以分为阻塞式和非阻塞式。 阻塞式对话框会阻塞执行的线程。默认情况下,它有输入焦点,用户必须先关闭它,线程才能继续执行。 阻塞式对话框不会同时禁用所显示的其他对话框。换言之,阻塞式对话框并非模式对话框。如果对话框为阻 塞式,则表示只有在对话框关闭后,所使用的函数 (GUI_ExecDialogBox()或 GUI_ExecCreatedDialog() ) 才会返回值。而非阻塞式对话框则不会阻塞调用的线程--在它为可见时,可允许任务继续运行。创建对话框 后,函数会立即返回值。 需要注意的是,切勿从回调函数中调用阻塞式函数。否则,可能会导致应用程序故障。 第 1 页 共 6 页 第 1 页 共 6 页 STM32-V5 开发板 STemW in 教程 STM32-V5 开发板 STemW in 教程 39.1.3 对话框过程函 对话框就是一个窗口,它接收消息的方式与系统中其他所有窗口一样。大多数消息由对话框的窗口回调 程序自动处理,而其他消息则传递到建立对话框时所指定的回调程序,这便称为对话框过程函数。 39.1.4 对话框消息 发送到对话框过程函数的两种附加消息为:WM_INIT_DIALOG 和 WM_NOTIFY_PARENT。在显示对 话框前,WM_INIT_DIALOG 消息会立即发送到对话框过程函数。对话框过程函数通常使用该消息来初始化 控件,并执行其他任何会影响对话框外观的初始化任务。 WM_NOTIFY_PARENT 消息则通过对话框的子窗 口发送到对话框,通知任何事件的父窗口以确保同步化。通过子窗口发送的事件取决于其类型,并针对每个 类型的控件单独记录。 39.2 创建对话框 创建对话框需要两个基本要素:资源表和对话框过程;前者定义所要包括的控件,后者定义控件的初始 值及其行为。一旦具备这两个要素,则只需进行单个函数调用(GUI_CreateDialogBox()或 GUI_ExecDialogBox() )就能创建对话框。 这里只是给大家讲解一下各个部分的原理,具体的创建方法可以参考第 4 章:uCGUIBulder 和 GUIBulder 的使用。 39.2.1 资源表 对话框可以基于阻塞(使用

文档评论(0)

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

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

1亿VIP精品文档

相关文档