VC++6.0中对话框类如何获取文档类中的数据?

文档类中处理的一些数据,有两个对话框,主对话框调用“显示”按钮,在另一个子对话框中调用这些数据,并在此子话框的static静态文本中将这些数据以二维坐标的曲线图显示出来。... 文档类中处理的一些数据,有两个对话框,主对话框调用“显示”按钮,在另一个子对话框中调用这些数据,并在此子话框的static静态文本中将这些数据以二维坐标的曲线图显示出来。
貌似可以修改对话框类的构造函数,可实怎么修改呢?又或者在View类中操作这个对话框,又怎么操作呢?

View类操作:

CGraphicsDlg dlg;
dlg.DoModal();
/* if(IDOK==dlg.DoModal())
{
//得到IDC_STATIC的句柄
CStatic* pWnd = (CStatic*)dlg.GetDlgItem(IDC_ZERO_DRAW); //IDC_ZERO_DRAW为子对话框中的静态文本
//根据句柄得到dc
CDC* pDC = pWnd->GetDC();
//得到dc的客户区域,并创建画刷填充这个区域
CRect rc;
pWnd->GetClientRect(&rc);
CBrush brush;
brush.CreateSolidBrush(RGB(255,255,255));
pDC->FillRect(&rc,&brush);

}里面操作的没效果。
展开
 我来答
bhtzu
2013-11-05 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4203万
展开全部

if(IDOK==dlg.DoModal())

这条语句执行完成之后,对话框对象还在,窗口已经销毁。这时候去操作对话框界面肯定不行的


模态对话框,初始化在对话框类的OnInitDialog里面(代码里没有Classwizard重载),绘制操作在OnPaint里面。

获取文档类办法很多,以你当前代码为例:

	CGraphicsDlg dlg;
dlg.pDoc = GetDocument();//传递文档类指针,对话框类成员变量pDoc
if(IDOK==dlg.DoModal())
{
}

这样传递之后,对话框类成员函数都可以通过pDoc->变量; 获取文档类数据了,注意对话框类需要包含文档类头文件。

更多追问追答
追问

由于文件太多,超过了字数限制,顾将内容粘贴到word里,又用截图图片的形式传上来的。呵呵

我在类的定义中定义文档类变量pDoc,头文件中也添加了它的.h文件,编译为什么总是出现下面的错误呢?

追答
调整一下包含顺序,让doc类头文件始终在Dlg头文件之前,其它cpp文件中的包含也是如此,就是要保证所有的dlg之前总有doc包含。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式