前一个对话框中定义的变量和函数如何在后来的对话框类中使用??
类别: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,而且新产生对话框的代码也不能放进去,如果去掉的话,线就跑到主对话框上去了。请帮帮忙。。
