背景
我对MFC和C ++缺乏经验。
我有一组对话框,所有对话框都有一小部分,其中包含相同的控件集和非常相似的代码。
我想将所有对话框中的一小部分控件分开,将所有对话框类中的代码移动到一个类中。
问题
我不确定该怎么做。我所有的想法似乎都有自己的问题,因为我缺乏经验。
我可以创建一个超级类,这些对话框继承自动创建控件给定(x,y)并挂钩所有连接并通过虚拟方法传递少数细节吗? 问题是我不知道具体细节:
超级类会从哪里继承? (CWnd?CDialog?)
我在哪里创建超类中的控件? (OnInit?构造函数?)
我在哪里初始化其子类中的超类? (OnInit?构造函数?)
我是否只有两张留言地图?一个用于超类,一个用于子类?
我还应该注意其他任何陷阱吗?
答案 0 :(得分:1)
您要重用的小部分可以是从CDialog派生的普通无模式对话框。您可以使用资源编辑器创建其控件 - 就像任何其他对话框一样 - 因此不必动态创建它们。诀窍是关闭对话框的标题栏样式(在资源编辑器中),因此这部分是一个单独的对话框在视觉上是显而易见的。它将与父对话框混合在一起。
对于要重复使用此对话框的每个地方,只需创建它并使用SetWindowPos将其放置在具有(x,y)坐标的父对话框中。