我在VIEW类中定义函数(响应菜单中的一项),在函数希望能实现弹出对话框,并在对话框上显示曲线。
代码为:Dialog *dlg;
dlg->DoModal();

CDC *dc=dlg->GetDC();
dc->MoveTo(10,10);
dc->LineTo(50,50);
执行时,总是内存不能为读,CDC *dc=dlg->GetDC();这一句不对吗,怎么得到对话框的DC,并在上边作图啊,谢谢各位了

解决方案 »

  1.   

    Dialog *dlg;
    dlg->DoModal();CDC *dc=dlg->GetDC();
    dc->MoveTo(10,10);
    dc->LineTo(50,50);
    ============
    从dlg->DoModal这句来看,对话框应该是一个模态对话框,CDC *dc=dlg->GetDC();这一句要等到你点对话框上的按钮,关闭对话框之后才能执行,而此时你的对话框已经销毁了,CDC *dc=dlg->GetDC();得到的是一个NULL指针。
      

  2.   

    不能用这个吧。要用另外一个。CClentDC才可以画曲线的吧。还有应该用窗体的from函数好像管用。具体我不记得了。你看看资料吧
      

  3.   

    我就在对话框里加了 一按钮,按按钮之后画图,代码如下:
    Dialog *dlg;
    CDC *dc=dlg->GetDC();dc->MoveTo(10,10);
    dc->LineTo(100,100);为什么还是出现不能为读的错误呢
      

  4.   

    把你的绘图操作放到你的Dialog类的OnPaint函数中去做
      

  5.   

    谢谢大家了 我把对话框换成非模态对话框 就可以了 
    在对话框类内就做时改成
    CDC *dc=GetDC();
    dc->MoveTo(10,10);
    dc->LineTo(100,100);
    就对了。