C++ 如果我尝试将对话框从一个项目移动到另一个项目,是否需要从rc文件复制设计信息、对话框信息和AFX_对话框_布局相关代码?

C++ 如果我尝试将对话框从一个项目移动到另一个项目,是否需要从rc文件复制设计信息、对话框信息和AFX_对话框_布局相关代码?,c++,mfc,C++,Mfc,我正在处理一个MFC VS2013项目,尝试将一些对话框从一个项目移动到另一个项目。我的以下步骤是: 查找此对话框资源ID(例如IDD_DIALOG1) 在project name.rc文件中搜索此ID 将相关代码复制到目标project.rc文件 将相关的*.h和*.cpp文件复制到目标项目 现在我的问题是,当我搜索projectname.rc文件时。实际上,我在这个文件中找到了几个与这个ID相关的位置。我需要将所有这些位置移动到新的资源文件中吗?或者我只需要移动位置1的代码? 位置2、3和4

我正在处理一个MFC VS2013项目,尝试将一些对话框从一个项目移动到另一个项目。我的以下步骤是:

查找此对话框资源ID(例如IDD_DIALOG1)

在project name.rc文件中搜索此ID

将相关代码复制到目标project.rc文件

将相关的*.h和*.cpp文件复制到目标项目

现在我的问题是,当我搜索projectname.rc文件时。实际上,我在这个文件中找到了几个与这个ID相关的位置。我需要将所有这些位置移动到新的资源文件中吗?或者我只需要移动位置1的代码? 位置2、3和4的含义是什么

//Location1:
//
// Dialog
//

IDD_DIALOG1 DIALOGEX 0, 0, 239, 190
STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Settings"
FONT 9, "Tahoma", 0, 0, 0x0
BEGIN
    CONTROL         " Default to Use",IDC_CHECK_USE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,6,222,8
    GROUPBOX        "Test2",IDC_STATIC,6,18,228,48,NOT WS_VISIBLE
    LTEXT           "Test1:",IDC_STATIC,12,32,132,8
    EDITTEXT        IDC_GES_EDIT_PROC_INTERVAL,150,30,78,12,ES_AUTOHSCROLL | WS_GROUP
......
END

//Location2:
//
// DESIGNINFO
//

#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
    IDD_DIALOG1, DIALOG
    BEGIN
        LEFTMARGIN, 7
        RIGHTMARGIN, 231
        TOPMARGIN, 7
        BOTTOMMARGIN, 186
    END
END
#endif    // APSTUDIO_INVOKED

//Location3:
//
// Dialog Info
//

IDD_DIALOG1 DLGINIT
BEGIN
    IDC_GDD_COMBO_ANGLE, 0x403, 5, 0
0x6f4e, 0x656e, "\000" 
...
    0
END

//Location4:
//
// AFX_DIALOG_LAYOUT
//

IDD_DIALOG1 AFX_DIALOG_LAYOUT 
BEGIN
    0x0000
END

您需要复制除设计信息外的所有信息(即:所有其他信息都是必需的,设计信息可能有用)。这些信息只是为资源定义的帮助行和边距。它们不是编译的,在运行时也不需要。它们在设计时很有用


将资源从一个资源复制到另一个资源的最简单方法是在同一个VisualStudio会话中打开两个rc文件。然后选择一个对话框“复制并粘贴到第二个RC文件”。这将复制您需要的所有内容,包括所需的ID

\ifdef APSTUDIO\u已调用
——我不建议尝试获取APP studio创建的资源文件并手动编辑或模拟它。Visual studio的资源编辑器可以重新生成
设计信息
信息,您无需复制它。我认为最棘手的是复制身份证。VS喜欢自己创建资源ID,它使用其他值,如
\u APS\u NEXT\u resource\u VALUE
来跟踪。在发生不可逆转的故障时,您应该进行备份。值得注意的是,可以复制
设计信息
(可选),以便您在新项目的资源编辑器中获得相同的设计时体验。在这种情况下,它只包含默认的对话框边距,这有助于创建外观一致的UI。更改了我的答案