关于 VS c++ 中用于 MFC 应用程序的事件处理程序的 desgin 约定
Desgin convention regarding event handlers in VS c++ for MFC apps
我有一个整体设计问题,与在VS c ++中开发MFC应用程序时事件处理程序的放置位置有关。在 Dialog 类中包含事件处理程序是否更好?或者是否可以将事件处理程序放在主应用程序类中?
我问这个是因为我发现自己试图从对话框类调用主类中的函数,但随后尝试从主类更新 GUI。我认为将我的大部分代码移动到 GUI(对话框(类会更容易。
我想我想知道当涉及到事件处理和调用不在事件发生的 GUI 内的函数时,约定是什么。
任何意见将不胜感激。
面向对象设计要求您决定哪些对象负责程序的各种元素。
GUI类应负责与关联的 GUI 元素的所有交互。在您的情况下,对话框类应处理来自对话框中嵌入的元素和菜单的所有消息。
另一个类可能应该处理程序中数据的表示。这可能是应用程序类,也可以是完全独立的类。MFC 使用的文档/视图体系结构具有指导性 - 应用程序只负责几个簿记函数,文档类处理数据表示形式,视图类负责在窗口中绘制数据。
相关文章:
- C++事件系统 - 多态事件和事件处理程序
- wxWidgets 拖放文件事件处理程序初始化问题(无效static_cast)
- 如何将IEnumerable与Process.Start的输出事件处理程序一起使用?
- "动态创建的事件处理程序"复选框
- Wxwidgets - 如何添加调整大小事件处理程序以使"X"绘图随窗口调整大小?
- Qt 键按事件处理程序仅在按下 ctrl、alt 或 shift 键时做出反应
- 类成员作为 C++ 中 C 样式事件的事件处理程序
- C 设计事件处理程序类
- 将托管事件处理程序传递给 Linux 中的非托管代码
- 如何在 c++ linux 中创建事件处理程序
- 解除 lambda 事件处理程序的绑定
- 这是MFC C 中单个选择的ComboBox的事件处理程序
- 指纹读取器 - 从 C# 代码创建事件处理程序到C++的问题
- 为什么我的Windows控制台关闭事件处理程序超时
- 无法让 matplotlib 事件处理程序与 Boost.Python 一起工作
- 事件处理程序是Embarcadero C++Builder中的重入程序吗
- 将事件处理程序添加到C 中的按钮
- 将事件处理程序添加到任何控件都会导致 Visual Studio 中出错
- 尝试实现 Windows API 包装器的事件处理程序时遇到问题
- 如何将事件处理程序添加到桌面窗口