摘要:关于MFC非模态对话框之间传递回数据的深入研究。
步骤/方法
-
1
在模态对话框,我们仍然可以使用数据变量时, DoModal()返回,因为对话框的对象并没有被摧毁,但只有基这个的对话框窗口已被摧毁。这是也有可能与非模式对话框,用漂亮的技巧,如下所示。
void CModeLess::OnOK()
{
if(UpdateData(true))
{
((CMainFrame*)m_parent)->m_x=m_sss;
DestroyWindow();
}
}
-
2
在这里,我已经指派的值对话框的数据变量m_sss到父类的成员变量, m_x 。在这里, m_parent 是一个指针,向父窗口。此处您想知道我得到这个m_parent 从,滚动起来,看看如何我已构造的,我非模式对话框对象。我会重复,单行刷新您的内存,也帮助您避免滚动,从而节省您的一些能源。
-
3
CModeLess *m_pmodeless = new CModeLess(this);
你可以看到,我已通过this向构造。在我而言,这是一个指针,以我的CFrameWnd派生类,其中应用程序向导已命名为CMainFrame我。现在看看我的CModeLess类的构造。
-
4
CModeLess::CModeLess(CWnd* pParent /*=NULL*/)
: CDialog(CModeLess::IDD, pParent)
{
//{{AFX_DATA_INIT(CModeLess)
m_sss = 0;
//}}AFX_DATA_INIT
m_parent=pParent; //This is where I point m_parent to my main frame window
}
这一切,慢慢是有道理的。
END
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15208127/viewspace-1111342/
,如需转载,请注明出处,否则将追究法律责任。