电子商务|对话框管理器第一章:先热热身

【电子商务|对话框管理器第一章:先热热身】电子商务|对话框管理器第一章:先热热身

文章图片


我认为大家关于对话框管理器的很多困惑 , 来自于没有真正地理解它的底层工作原理 。 这其实也没那么糟 。 在接下来的几篇文章中 , 我将首先描述对话框是如何创建的 , 然后我会讲解对话框消息循环 , 最后 , 我会再介绍一些有关导航相关的主题 。
这一系列将会包含九篇文章 , 请做好 , 扶稳了 。
对话框管理器的第一个主要部分 , 是它负责读取对话框模板并基于此模板创建一个对话框 。
你会看到一些形如CreateDialogXxx的函数 , 它们用来创建对话框 。 而它们只是在底层调用CreateDialogIndirectParam这个函数 。 在这些函数中 , 有些直接是通过宏来定义的 , 例如CreateDialog只是简单地调用CreateDialogParam , 并将一个参数设置为0.
类似的 , CreateDialogIndirect也只是将一个参数设置为0并调用CreateDialogIndirectParam 。
我们先来看看一个比较简单的包装器函数 , 如下图所示:

在上面的代码中 , CreateDialogParam只是使用hinst/pszTemplate来定位对话框模板 , 然后使用此模板来调用CreateDialogIndirectParam , 以创建对应的对话框 。
好了 , 今天就先到这里 , 不复杂吧?
在下一篇文章中 , 我将会从一个模板中创建对话框 , 请小期待一下 。
总结地球人都知道 , 我一向不喜欢弹出式对话框 , 但是:人在江湖 , 身不由己 。
TopomelBox也还是用到了一些对话框 , 这些对话框仅用于给使用者一些关键性提示 。
要完全避免对话框的使用 , 我看 , 挺难的 。 但我的原则还是:对话框能不用 , 咱就不用 。
没事瞎干扰用户干啥 。
最后Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一 , 里面有很多关于Windows的小知识 , 对于广大Windows平台开发者来说 , 确实十分有帮助 。
本文来自:《The dialog manager part 1: Warm-ups》