C++ 我可以在一个项目中申报两个IDD吗?

C++ 我可以在一个项目中申报两个IDD吗?,c++,visual-c++,mfc,C++,Visual C++,Mfc,我在一个项目中使用了两个类。第一类是CClientSocketDlg,另一类是cusersspecificationdlg 下面是代码的某些部分 class CClientSocketDlg : public CDialog { public: bool StartClient(); CClientSocketDlg(CWnd* pParent = NULL); void AppendMessage(LPCTSTR strText ); enum { IDD

我在一个项目中使用了两个类。第一类是
CClientSocketDlg
,另一类是
cusersspecificationdlg

下面是代码的某些部分

class CClientSocketDlg : public CDialog
{
  public:
    bool StartClient();
    CClientSocketDlg(CWnd* pParent = NULL);
    void AppendMessage(LPCTSTR strText );

    enum { IDD = IDD_CLIENTSOCKET_DIALOG };
    CEdit   m_ctlMsgList;
    CIPAddressCtrl  m_ctlIPAddress;
};

class CuserspecificationDlg : public CDialogEx
{
  public:
    CuserspecificationDlg(CWnd* pParent = NULL);

    // Dialog Data
    enum { IDD = IDD_USERSPECIFICATION_DIALOG };
    CListCtrl m_List;
    CString out;  // For Edit control in list box having IDC_EDIT2
  protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
};
我可以在一个项目中声明它们吗?允许吗?我可以使用
m\u ctlIPAddress

在CUserspecification类中?

您可以这样做。有什么问题?你认为一个项目只允许一个对话框吗:)?实际上,m_ctlIPAddress是在CCLIENTSOCKET DLG类下的函数中定义的,它有自己的dodataexchage()。因此,无法从UserspecificationDlg类正确初始化此m_ctlIPAddress。这就是为什么每个对话框都需要自己的DoDataExchange覆盖。是的,我只需要初始化Userspecification对话框,在该对话框中可以调用clientDLGfunctionality。那么如何在userspecDLG中使用CLIENTDLG的dodataexchange呢?