C ++ MFC:将公共控件分成一个组

时间:2014-08-07 15:19:11

标签: c++ mfc

背景

我对MFC和C ++缺乏经验。

我有一组对话框,所有对话框都有一小部分,其中包含相同的控件集和非常相似的代码。

我想将所有对话框中的一小部分控件分开,将所有对话框类中的代码移动到一个类中。

问题

我不确定该怎么做。我所有的想法似乎都有自己的问题,因为我缺乏经验。

我可以创建一个超级类,这些对话框继承自动创建控件给定(x,y)并挂钩所有连接并通过虚拟方法传递少数细节吗? 问题是我不知道具体细节:

  1. 超级类会从哪里继承? (CWnd?CDialog?)

  2. 我在哪里创建超类中的控件? (OnInit?构造函数?)

  3. 我在哪里初始化其子类中的超类? (OnInit?构造函数?)

  4. 我是否只有两张留言地图?一个用于超类,一个用于子类?

  5. 我还应该注意其他任何陷阱吗?

1 个答案:

答案 0 :(得分:1)

您要重用的小部分可以是从CDialog派生的普通无模式对话框。您可以使用资源编辑器创建其控件 - 就像任何其他对话框一样 - 因此不必动态创建它们。诀窍是关闭对话框的标题栏样式(在资源编辑器中),因此这部分是一个单独的对话框在视觉上是显而易见的。它将与父对话框混合在一起。

对于要重复使用此对话框的每个地方,只需创建它并使用SetWindowPos将其放置在具有(x,y)坐标的父对话框中。