对话框管理器第一章:先热热身

对话框管理器第一章:先热热身

作者:BlogUpdater |  时间:2022-07-21 |  浏览:131 |  评论已关闭 条评论

我认为大家关于对话框管理器的很多困惑,来自于没有真正地理解它的底层工作原理。这其实也没那么糟。在接下来的几篇文章中,我将首先描述对话框是如何创建的,然后我会讲解对话框消息循环,最后,我会再介绍一些有关导航相关的主题。
这一系列将会包含九篇文章,请做好,扶稳了。

对话框管理器的第一个主要部分,是它负责读取对话框模板并基于此模板创建一个对话框。
你会看到一些形如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》

最近我写了个东西
正如你们所知道的,拓扑梅尔智慧办公平台(Topomel Box)是一款绿色软件,主要面向经常使用电脑的朋友。它提供了各种提升办公效率的小功能,同时操作上尽可能地简单方便。
我想:你值得拥有。

评论已关闭。