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