C++ C++;MFC:将常用控件划分为一个组
背景 我对MFC和C++的经验很差。 我有一组对话框,它们都有一个小部分,具有相同的控件集和极其相似的代码 我想将控件的一小部分从所有对话框中分离出来,将代码从所有对话框类移动到单个类中 问题 我不知道该怎么办。我所有的想法似乎都有自己的问题,因为我太没经验了 我是否可以创建一个超级类来继承这些对话框,该类在给定(x,y)的情况下动态创建控件,并连接所有连接,并通过虚拟方法传递少数细节? 问题是我不知道具体细节:C++ C++;MFC:将常用控件划分为一个组,c++,mfc,C++,Mfc,背景 我对MFC和C++的经验很差。 我有一组对话框,它们都有一个小部分,具有相同的控件集和极其相似的代码 我想将控件的一小部分从所有对话框中分离出来,将代码从所有对话框类移动到单个类中 问题 我不知道该怎么办。我所有的想法似乎都有自己的问题,因为我太没经验了 我是否可以创建一个超级类来继承这些对话框,该类在给定(x,y)的情况下动态创建控件,并连接所有连接,并通过虚拟方法传递少数细节? 问题是我不知道具体细节: 超级类将从何处继承?(CWnd?CDialog?) 我将在超级类中的何处创建控件?
还有什么我应该注意的陷阱吗?您想要重用的小部分可以是一个普通的无模式对话框,它派生自CDialog。您可以使用资源编辑器创建它的控件-就像其他任何对话框一样-这样它们就不必动态创建。诀窍是关闭对话框的标题栏样式(在资源编辑器中),以便在视觉上看不出该部分是一个单独的对话框。它将与父对话框融为一体
对于要重用此对话框的每个位置,只需创建它并使用SetWindowPos将其放置在具有(x,y)坐标的父对话框上。每个对话框中的常用控件是否具有不同的功能,取决于它们出现的对话框或它们都执行相同的操作?它们各自执行相同的操作。唯一的区别是它们影响的变量。例如,一个维度会为每个不同的对话框读取不同的变量。不要将WS_子样式添加到资源中。