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呢?