在CVgMFCView类中调用对话框CEvnDlg
void CVgMFCView::OnGfxEnv() 
{
// TODO: Add your command handler code here
        CEvnDlg* pEvnDlg=new CEvnDlg(this);
pEvnDlg->Create(CEvnDlg::IDD,this);
pEvnDlg->ShowWindow(SW_SHOW);
}CEvnDlg的构造函数:
CEvnDlg::CEvnDlg(CVgMFCView* pParent /*=NULL*/)
: CDialog(CEvnDlg::IDD, pParent)
{
m_pVgView=pParent;//m_pVgView是CVgMFCView* 类型
}
请问:函数OnGfxEnv()两个this各是什么意思啊?CEvnDlg::IDD又是什么意思?哪个this 和pParent有关系?是什么关系?

解决方案 »

  1.   

    CEvnDlg::IDD 是对话框CEvnDlg的ID,是一个枚举变量,在CEvnDlg的头文件中定义函数OnGfxEnv()两个this都是类CVgMFCView的实例指针CEvnDlg* pEvnDlg=new CEvnDlg(this);中的this和pParent有关系,pParent接收的就是this这个参数
      

  2.   

    CEvnDlg* pEvnDlg=new CEvnDlg(this);是把当前CVgMFCView类型的实例传递给CEvnDlg类的构造函数,里面的this代表CVgMFCView当前实例的指针。pEvnDlg->Create(CEvnDlg::IDD,this);里的this 的含义相同
      

  3.   

    正如ls 2 位说的2 this 都是指向CVgMFCView的指针---
    IDD //对话框的ID,在资源文件中,vc 帮你定义的!---
    CEvnDlg* pEvnDlg = new CEvnDlg( this );//带参数的构造函数
                                          //this 是实参,pParent是形参;和普通函数的参数
                                         //传递没区别!-------------
    好像你昨天也问了吧..?