我现在建立了一个多文档的MFC程序
想在第一个窗口画个圆
第二个窗口画个正方形
分别保存
然后在第三个窗口把两幅图并接到一起
这就是我的目的我现在是这么想的
在第一个窗口画圆的时候再第三个窗口也画圆
然后把第一个窗口画的圆单独保存
再新建一个窗口2
并在里面画正方形
同时在第三个窗口中也画正方形
这样窗口一和窗口二的图像能分别保存而且也能并接到一起但是我不知道如何同时在两个窗口中画图
而且我在窗口一中画好图后新建第二窗口会自动画出第一个窗口的图形请各位大虾帮帮忙,着急!
小弟第一次在这里发帖,有什么没做到的还请各位大虾多多包涵

解决方案 »

  1.   

    各画各的,第三个视图
    pView1->GetDC();
    pView2->GetDC();
    合并。
      

  2.   

    感觉没有问题。你在不同的View中画就可以。然后将两个View中的图合并到第三个View中。你是不是对多文档的机制还不太清楚?
      

  3.   

    画操作产生的数据应该传递给两个文档类,然后调用两个文档的UpdateAllViews()
      

  4.   

    没错我对多文档还不清楚
    一直是在对话框下写程序
    突然要用多文档有点手足无措
    各位大虾麻烦讲的清除些
    我还是有点糊涂我在view下画可是新建子窗口的时候他还回把刚才的图形画一遍
    是要自己建立多个view么?
    怎么建立?
      

  5.   

    只要你创建的是多文档应用程序,视图的创建你不必关心,你点“new”按钮或用函数AfxGetApp()->OnFileNew()就可以创建一个文档。另外你描述的需求我也不是很明白,我理解的有两种方式:
    1。类似与3d max,对一个视图拆分成三个区,在A,B区绘制的同时,驱动C区绘制。如何驱动?c区写个绘制函数,取得C区的dc,将坐标点传给他,调函数绘制。
    2。创建三个文档,在a,b文档绘制完成后驱动c绘制。文档管理器可以取得各个文档指针。
      

  6.   

    楼上的大侠
    是a,b画完再画c
    另外你的意思是创建三个文档不用创建三个视图,是这个意思么?
    可是我画的a,b,c三个图还要分别保存为位图
    jameshooo 说的UpdateAllViews()这个函数怎么用?有没有类似的代码可以参考
      

  7.   


    void CxxxView::OnDraw(CDC* pDC)
    {
    ...
    CDC* pDC1 = pView1->GetDC(); 
    CDC* pDC2 = pView2->GetDC(); pDC->BitBlt(..., pDC1, ...);
    pDC->BitBlt(..., pDC2, ...);
    }
      

  8.   

    你这样岂不是pDC1的东西已经被盖住看不到了?