我有一个整体设计问题,与在VS c ++中开发MFC应用程序时事件处理程序的放置位置有关。在 Dialog 类中包含事件处理程序是否更好?或者是否可以将事件处理程序放在主应用程序类中?
我问这个是因为我发现自己试图从对话框类调用主类中的函数,但随后尝试从主类更新 GUI。我认为将我的大部分代码移动到 GUI(对话框(类会更容易。
我想我想知道当涉及到事件处理和调用不在事件发生的 GUI 内的函数时,约定是什么。
任何意见将不胜感激。
面向对象设计要求您决定哪些对象负责程序的各种元素。
GUI类应负责与关联的 GUI 元素的所有交互。在您的情况下,对话框类应处理来自对话框中嵌入的元素和菜单的所有消息。
另一个类可能应该处理程序中数据的表示。这可能是应用程序类,也可以是完全独立的类。MFC 使用的文档/视图体系结构具有指导性 - 应用程序只负责几个簿记函数,文档类处理数据表示形式,视图类负责在窗口中绘制数据。