如何移动MFC项目的对话框

时间:2014-09-09 15:46:17

标签: c++ visual-c++ mfc

我在一个版本的MFC基本代码中做了一些更改,但现在我想将一部分更改(包括一些对话框)复制到另一个项目。可以将对话框原样复制到新的MFC项目中。但我找不到任何与cpp和头文件上的对话框相关的文件。请告诉我有没有办法将对话框从一个MFC项目复制到另一个

由于

1 个答案:

答案 0 :(得分:2)

您可能正在寻找的是自动生成和处理的资源文件,如resource.h,resource.rc和friends。您可以在此处详细了解这些内容:How to: Copy Resources以及更多信息Resource Files (Visual Studio)

虽然可以在Visual Studios中打开这些文件'资源视图,它们也可以打开并作为文本查看;即使在Visual Studio中,只要资源视图当前没有打开,但VS会告诉您是否属于这种情况。

现在,MFC对话框通过名为IDD的枚举引用其使用的对话框模板资源,IDD在对话框的头文件中定义,例如。

class CTest : public CDialog { /*...*/  enum { IDD = IDD_TEST_DIALOG }; }

所以你可能要做的就是搜索指定的资源ID,在/ one .rc文件中查找并将所需的部分(标题+从BEGIN到END的所有内容)复制到新项目中。 作为第二步,您需要为该对话框中使用的所有资源ID定义唯一值(但不适用于像IDOK这样的常见资源ID)。这通常在resource.h中完成:

#define IDD_TEST_DIALOG               142

因此您必须将特定对话框中使用的所有定义复制到目标resource.h,并确保没有重复的数字。 请记住,可能存在多个包含资源的文件,有些可能是其他项目的一部分resource only dll's f.e.