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


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

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

     

  • 相关阅读:
    C++——类和对象
    从零开始学习线性回归:理论、实践与PyTorch实现
    得物 Redis 设计与实践yu
    线程状态及线程停止
    图的应用之最小生成树
    基于随机效应贝叶斯神经网络(RE-BNN)的多区域出行模式选择分析
    专业综合课程设计 - 优阅书城项目(第一版)
    统计模型----决策树
    fyne - 谁说用Go不能开发应用界面
    HAProxy 生产环境架构
  • 原文地址:https://blog.csdn.net/mmxida/article/details/125904773