前一个对话框中定义的变量和函数如何在后来的对话框类中使用??

类别:VC

阿里妈妈帮你实现网络赚钱梦


我用MFC建立了一个基于对话框的程序,并在该类定义了一些成员变量和成员函数。
我在该对话框是放上一个按钮,想要单击此按钮后重新生成一个新的对话框,并根据原对话框中定义的一些变量和函数在新的对话框中画出图形。
不知在新的对话框类中如何使用前一个对话框类中的变量和函数?
谢谢!

回答:

把dialog的this指针传进去

回答:

CWnd::GetMainWnd()     可以返回主对话框的指针,通过这个指针访问你的数据就可以了!

回答:

在新对话框中把基本对话框的头文件加入进去。
然后,定义基本对话框的变量。直接赋值就可以得到   那些值

回答:

CWnd::GetMainWnd(),没有这个成员函数呀!怎么返回对话框的指针呀。

希望大家帮帮忙。

回答:

我在按钮事件中调用我写的画图函数,可是他画在了主对话框上,我的想法是画在点按钮后新生成的对话框上呀!
求助!

回答:

不好意思,记错了,是CWinThread的成员
CWinThread::GetMainWnd  

这些你都不用管的,你只需要在你的子对话框使用GetMainWnd()这个方法就可以了,就能得到你的主对话框的指针了。

至于你画图的问题,你可以使用你新建的窗口的句柄来建立这个画图DC   ,用这个DC来画图就可以将图画到新窗口中了。

回答:

谢谢楼上的朋友,可是CWinThread::GetMainWnd   也不存在呀。

其实我的想法很简单,就是很多变量和函数都是在主对话框中定义的,当单击主对话框上的按钮时,弹出一个新的对话框,并且我写好的画图函数在新对话框上实现,即在新对话框上画了图,想想很简单,为什么实现不好呢?

继续求助!
我刚才求助了好几个贴子,解决问题后全在第一时间结了贴,希望大家帮帮忙。

回答:

求助呀!

回答:

你可以把主对话框的实例指针传给子对话框,在子对话框中通过这个指针访问。

回答:

谢谢楼上的朋友,我是新手,有些函数和类实在不是很清晰,机上也没有MSDN。
不知您能否稍微详细一点,具体使用哪个函数,如何操作,谢谢,我也好一点点学习。

回答:

继续求助。。。

回答:

DDD

回答:

比如:
子对话框是CSubDlg,在主对话框中:
CSubDlg   dlg(this);
dlg.Domodal();
在子对话框中需要用到主对话框CMainDlg中的数据的时候:
CMainDlg   *pDlg   =   dynamic_cast <CMainDlg* >(GetParent());
if   (pDlg)
  pDlg- >...

回答:

现在的问题是,我在主对话框按钮上单击后触发画图程序,我的想法是画在新对话框上,而它仍然画在主对话框上,这是如何??

回答:

我在主对话框上的按钮单击程序如下,调试虽然通过,但运行后新对话框没有画出的钱,且一退出就发生错误。

CPic   dlg;
dlg.DoModal();
CClientDC   dc(&dlg);
dc.MoveTo(50,30);
dc.LineTo(200,200);

回答:


比如我的主对话框类中有下面一个按钮单击事件。

void   CDFTVCDlg::OnBnClickedButton4()
{

  CPic   *dlg=new   CPic;  
  dlg- >Create(IDD_DIALOG1,NULL);
  dlg- >ShowWindow(SW_SHOW);

  CDC*   pDC=dlg- >GetDC();
        pDC- >MoveTo(50,30);
     pDC- >LineTo(200,200);
     ReleaseDC(pDC);
}

目的是产生一个新的对话框,并在该对话框上画线。为了保证移动窗口时图像还在。我在新对话框类CPic类上建立一个OnPaint函数。可是我无法将上面的代码放进去,因为编译时找找不到dlg,而且新产生对话框的代码也不能放进去,如果去掉的话,线就跑到主对话框上去了。请帮帮忙。。

回答:

↓有缘文章(随机)
返回[就爱你]首页