2012-05-18 16 views
0

我有一个总体设计问题,涉及在VS C++中开发MFC应用程序时放置事件处理程序的位置。在Dialog类中有事件处理程序更好吗?还是可以将事件处理程序放在主应用程序类中?有关MFC应用程序的VS C++中的事件处理程序的设计约定

我问这是因为我发现自己试图从对话框类调用主类中的函数,但随后尝试从主类更新GUI。我认为将我的大部分代码移到GUI(对话)类会更容易。

我想我很想知道当事件处理和调用不在事件发生的GUI中的函数时,约定是什么。

任何输入,将不胜感激。

+0

它是基于对话框的应用程序吗? – MikMik

+0

是的,它是一个基于对话框的应用程序。一个对话框和一个菜单。这些事件由菜单以及几个按钮,文本框等触发。 –

回答

1

面向对象设计需要您决定哪些对象负责您程序的各个元素。

一个GUI类应该负责与关联的GUI元素的所有交互。在你的情况下,对话框类应该处理来自嵌入在对话框中的元素和菜单的所有消息。

另一个类应该可能是处理程序中的数据表示。这可能是应用程序类,也可能是一个完全独立的类。 MFC使用的Document/View体系结构具有指导意义 - 应用程序仅负责一些簿记功能,文档类处理数据表示,视图类负责在窗口中绘制数据。