cestregle 发表于 2014-2-20 09:50:44

MFC 对话框传送数据的问题

有个应用,是MFC 对话框程序.
有2个类,一个是普通类,设为class D{ }
一个是class ADlg:CDialog
{
   D dObj;
   ShowSth(){ drawText(); }
}

现在D的一个函数有一组数据要显示到dialog上,
应该怎么做?
dObj.showResult() {

    int result = xxxyyy;
    showResultInDialog(result);
}
类似这样的逻辑,怎么实现啊, 用UpdateData()方法吗

cestregle 发表于 2014-2-20 10:56:42

已经解决,不知道怎么删除

Appcat 发表于 2014-2-20 11:04:52

楼主赶紧把怎么解决的贴上来。还在想着怎么删除帖子,你的ID危险了。

tiger5 发表于 2014-2-20 11:43:07

说说解决的方法。
哈哈

cestregle 发表于 2014-2-20 21:02:35

Appcat 发表于 2014-2-20 11:04
楼主赶紧把怎么解决的贴上来。还在想着怎么删除帖子,你的ID危险了。

也是搜到的:
2.1 利用构造函数传递指针变量
   在新添加的X.h文件中,添加构造函数
   CX(CMyProject2Dlg *pDlg);
   在相应的X.cpp文件中添加实现函数:
   CX::CX(CMyProject2Dlg *pDlg)
   {
         m_pDlg = pDlg;
   }
   此处m_pDlg是在X.h中定义的类成员变量:
   CMyProject2Dlg *m_pDlg;
   这样通过在CMyProject2Dlg中定义的CX的指针,就可以在X.cpp中实现访问CMyProject2Dlg中的构造函数,具体操作如下:
   在CMyProject2Dlg.h中添加
   CX *m_pX;
   在CMyProject2Dlg.cpp中添加
   m_pX = new CX(this);
   则实现了传递对话框指针给m_pDlg,这样就可以通过m_pDlg实现对CMyProject2Dlg中成员函数的访问了。

    2.2 直接在对话框类中实现访问
   采用直接在对话框创建时,在对话框显示之前初始化对话框的时候传递指针:
   BOOL CMyProject2Dlg::OnInnitDialog()
   {
         m_pX->m_pDlg = this;
   }
页: [1]
查看完整版本: MFC 对话框传送数据的问题