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);
}
}里面操作的没效果。 展开
貌似可以修改对话框类的构造函数,可实怎么修改呢?又或者在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);
}
}里面操作的没效果。 展开
1个回答
展开全部
if(IDOK==dlg.DoModal())
这条语句执行完成之后,对话框对象还在,窗口已经销毁。这时候去操作对话框界面肯定不行的
模态对话框,初始化在对话框类的OnInitDialog里面(代码里没有Classwizard重载),绘制操作在OnPaint里面。
获取文档类办法很多,以你当前代码为例:
CGraphicsDlg dlg;
dlg.pDoc = GetDocument();//传递文档类指针,对话框类成员变量pDoc
if(IDOK==dlg.DoModal())
{
}
这样传递之后,对话框类成员函数都可以通过pDoc->变量; 获取文档类数据了,注意对话框类需要包含文档类头文件。
更多追问追答
追答
调整一下包含顺序,让doc类头文件始终在Dlg头文件之前,其它cpp文件中的包含也是如此,就是要保证所有的dlg之前总有doc包含。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询