新建了一个基于对话框的应用,然后在OnInitDialog函数中写了这样一段代码:CClientDC dc(this);
dc.MoveTo(CPoint(100,200));
dc.LineTo(CPoint(400,500));运行时不知为何对话框不显示该线条,求解

解决方案 »

  1.   

    在OnPaint函数中去做
    CPaintDC dc(this);
    dc.MoveTo(...);
    dc.LineTo(...);
      

  2.   

    因为你的代码放的位置不对。OnInitDialog是对话框初始化函数,他只能执行一次,待对话框生成之后,MFC会一直执行Update来更新窗口,于是就把你以前画的直线给刷掉了。
    正确的做法就是部长那样,将你的全部绘图代码放到OnPaint函数中去做。
      

  3.   

    OnInitDialog函数执行的过程中会画线条,但是该函数执行完后,会接着执行很多函数,比如OnPaint,导致窗口重绘,把你之前花的又刷掉了
      

  4.   

    初学者问题,一定要放入OnPaint之中因为你虽然OnInitDialog画了一次,但是程序会多次触发了WM_PAINT消息,然后就会调用OnPaint函数,本身OnPaint为空,就画OnPaint里面的东西,你的内容就被清空了。