我在MFC中一个弹出对话框的IDOK函数中想把数据赋值到View类中的成员变量,如何获取视类窗口指针呢
1个回答
展开全部
如果你这个对话框是在view的成员函数中弹出来的,也就是说在成员函数中声明并DoModal的,可以在DoModal之前直接把this指针传递到对话框对象中的成员函数中。这样在IDOK中进行赋值。假如view类是MyView,对话框类MyDlg,在MyView的成员函数fun()中弹出对话框,一般的例子如下:
class CMyView;
class CMyDlg : public CDialog
{
.......
//下面是增加的定义内容
private:
CMyView *m_pView; //接收View类的指针
public:
SetMyView(CMyView *pView) //提供接收view指针的操作
{ m_pView = pView; }
};
void CMyView::fun()
{
MyDlg dlg;
dlg.SetMyView(this); //将CMyView对象的this指针传递给对话框。
if(dlg.DoModal()==IDOK)
{
//相应的处理过程
}
}
class CMyView;
class CMyDlg : public CDialog
{
.......
//下面是增加的定义内容
private:
CMyView *m_pView; //接收View类的指针
public:
SetMyView(CMyView *pView) //提供接收view指针的操作
{ m_pView = pView; }
};
void CMyView::fun()
{
MyDlg dlg;
dlg.SetMyView(this); //将CMyView对象的this指针传递给对话框。
if(dlg.DoModal()==IDOK)
{
//相应的处理过程
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询