本帖最后由 xianglitian 于 2011-10-12 10:12:34 编辑

解决方案 »

  1.   

    在初始化里启动一个定时器,然后把画图放在timer事件里,画完以后把定时器关掉。关键还是事件的执行顺序没搞清楚。
      

  2.   

    GetClientRect(&rect);  
    改成
    p->GetClientRect(&rect);  
      

  3.   

     hezhe1008 : p->GetClientRect(&rect); 我改完后,屏幕没有图了,都是对话框颜色了                 
    xianglitian:DrawGrid2(&memdc);画坐标系的代码,屏蔽后,对话框都是黑的
      

  4.   

    你要的效果不就是picture全黑吗
      

  5.   

    pDC->BitBlt(0,0,rect.Width(),rect.Height(),&memdc,0,0,SRCCOPY);
    改为
    pDC->BitBlt(rect.left,rect.top,rect.Width(),rect.Height(),&memdc,0,0,SRCCOPY);
      

  6.   

    我改完,哟些效果 但是为什么刚打对话框时picture控件是白色,要用鼠标左右摇晃对话框,图像才从picture控件中出现呢
      

  7.   

    //OnEraseBkgnd,返回TRUE,直接在OnPaint中画背景吧。BOOL OnEraseBkgnd(CDC* pDC)
    { return TRUE;
    //return CDialogEx::OnEraseBkgnd(pDC);
    }
      

  8.   

    我说的是
    memdc.SetMapMode(pDC->GetMapMode());
    memdc.SetViewportOrg(pDC->GetViewportOrg());
    memdc.SetViewportExt(pDC->GetViewportExt());
    memdc.SetWindowOrg(pDC->GetWindowOrg());
    memdc.SetWindowExt(pDC->GetWindowExt())
    这些代码
      

  9.   

    我改完后 还是有问题 1 加入return TRUE; 后背景变成透明的,把主界面图像都印过来了
                        2 弹出对话框 picture控件还是一片白 摇晃动画面,才出现图形
     
      

  10.   

    你画出来了,但是在OnPaint里执行了你画后又接着执行了OnPaint自己的把你的代码放到OnDraw里看看画的对不