gpt4 book ai didi

design-patterns - UI 状态的处理

转载 作者:行者123 更新时间:2023-12-04 07:09:51 25 4
gpt4 key购买 nike

我有使用 MFC 编写的在 Windows 上运行的应用程序。菜单项的启用/禁用状态取决于很多条件。例如,如果条件 A 满足或条件 B 满足,我必须启用菜单项,但如果 A 和 B 同时为 TRUE,则应禁用菜单项。我们如何在代码中对此进行建模?我想我应该使用某种状态机,但我的状态机似乎包含太多状态。处理此类问题的一般方法是什么?请注意,以上只是一个例子,还会有更多这样的情况。此外,始终启用菜单并在用户按下时显示错误消息的选项不存在,因为我必须禁用菜单。

只是为了澄清,我不是在寻找如何禁用 MFC 中的菜单项,我在寻找什么是在涉及许多相互依赖的状态时决定是否启用/禁用菜单项的最佳方法。

最佳答案

MFC 具有启用和禁用菜单项的内置机制,以命令路由和 ON_UPDATE_COMMAND_UI 的形式存在。宏。更多详情请见How to: Update User-Interface ObjectsCCmdUI MSDN 中的类文档。

您不一定需要状态机。对于每个菜单命令,决定应该在哪里处理命令,例如,在你的文档、 View 或主框架类中,然后实现一个 OnUpdate处理程序并添加一个 ON_UPDATE_COMMAND_UI相应类的消息映射条目。

举个例子,看看我给 this question 的回答.

关于design-patterns - UI 状态的处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/599977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com