自定义工具栏对话框实现:飞思卡尔MC9S12XS128 Bootloader设计与Windows汇编实例

需积分: 50 38 下载量 155 浏览量 更新于2024-08-07 收藏 5.2MB PDF 举报
本文主要讨论了在飞思卡尔芯片mc9s12xs128的Bootloader设计中如何实现自定义工具栏对话框的功能,以及相关的Windows Win32 API交互。自定义工具栏对话框是通过Windows消息机制与父窗口进行通信的,通过发送特定的通知码(TBN_BEGINADJUST, TBN_ENDADJUST, TBN_TOOLBARCHANGE, TBN_CUSTHELP, TBN_RESET)来同步状态变化。 关键知识点包括: 1. **通知码的使用**: - `TBN_BEGINADJUST` 和 `TBN_ENDADJUST` 用于对话框打开和关闭时通知父窗口,告知工具栏布局的变化。 - `TBN_TOOLBARCHANGE` 在按钮调整时发送,用于更新工具栏布局。 - `TBN_CUSTHELP` 和 `TBN_RESET` 分别对应“帮助”和“重置”按钮点击事件,父窗口可以选择性响应。 - `TBN_QUERYINSERT` 和 `TBN_QUERYDELETE` 用于询问用户是否允许插入或删除按钮,父窗口必须处理并返回是否允许。 2. **TBNOTIFY 结构**: - 当用户试图插入或删除按钮时,工具栏会发送一个包含按钮信息的 `TBNOTIFY` 结构,父窗口根据此结构判断操作是否允许。 3. **代码示例**: - 示例程序使用 `ebx + NMHDR.code` 来检查通知码,并在 `TBN_QUERYINSERT` 和 `TBN_QUERYDELETE` 时始终返回 `TRUE`,表示允许用户自由操作。 - 对于 `TBN_GETBUTTONINFO`,处理过程更为复杂,因为工具栏可能需要多次请求按钮信息,程序会逐个获取并填充 `TBNOTIFY` 结构中的 `tbButton` 字段。 4. **Windows环境下32位汇编语言**: - 该文章与《Windows环境下32位汇编语言程序设计》一书相关,介绍了一种在Windows环境中使用汇编语言开发应用程序的方法,强调了汇编语言在Windows平台上的可用性和优势。 - 作者罗云彬是一位经验丰富的汇编语言程序员,他的作品适合希望深入了解操作系统底层机制的读者。 5. **版权和联系方式**: - 提供了图书的版权信息、购买和查询方式,以及作者和出版社的相关联系信息。 本文着重讲解了如何在飞思卡尔芯片Bootloader中通过Windows API实现自定义工具栏对话框,并展示了与之相关的汇编语言编程技巧,尤其适用于对Windows平台汇编编程有兴趣的开发者。