我在程序里使用CSplitterWnd将窗口分成了四块,可是在最小化或者切换到其他程序,再切换到此程序时,只有一个子区块(左上角的,我估计是因为这个子窗口是默认的Active窗口)有图像,其他的窗口根本没有进行绘制。请教这个问题怎么解决,不晓得这个问题是不是很菜,高手莫笑,谢哦^_^

解决方案 »

  1.   

    m_wndSplitter.CreateStatic(this, 2, 2);
    m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CEditorView), CSize(220, 400),pContext);
    m_wndSplitter.CreateView(0, 1, pContext->m_pNewViewClass, CSize(220, 400), pContext);
    m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CCameraView), CSize(220, 200),pContext);
    m_wndSplitter.CreateView(1, 1, RUNTIME_CLASS(CScriptView), CSize(220, 200),pContext);似乎只有CEditorView响应WM_PAINT消息,其他的在窗口Active时都没有重绘....
      

  2.   

    费解....
    m_wndSplitter.CreateStatic(this, 2, 2); 
    m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CEditorView), CSize(220,400),pContext); 
    m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CCameraView), CSize(220,200),pContext); 
    m_wndSplitter.CreateView(1, 1, RUNTIME_CLASS(CScriptView), CSize(220,200),pContext);
    m_wndSplitter.CreateView(0, 1, pContext->m_pNewViewClass, CSize(220,400),pContext);换个顺序,前面三个就都没问题了,高手们知道这是什么原理吗 ?!跟最后一个的位置有关系!
    但是最下面的状态栏还是有问题,只剩下状态栏没有重绘了...
      

  3.   

    费解....
    m_wndSplitter.CreateStatic(this, 2, 2); 
    m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CEditorView), CSize(220,400),pContext); 
    m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CCameraView), CSize(220,200),pContext); 
    m_wndSplitter.CreateView(1, 1, RUNTIME_CLASS(CScriptView), CSize(220,200),pContext);
    m_wndSplitter.CreateView(0, 1, pContext->m_pNewViewClass, CSize(220,400),pContext);换个顺序,前面三个就都没问题了,高手们知道这是什么原理吗 ?!跟最后一个的位置有关系!
    但是最下面的状态栏还是有问题,只剩下状态栏没有重绘了...
      

  4.   

    把这个pContext->m_pNewViewClass换成其他CXXXXView呢
      

  5.   

    都写成自己新建的*View类就都没问题了.....
      

  6.   

    难道要我把菜单栏、工具栏和状态栏都去掉....这些东西的重绘是在什么地方进行的?难道不是MainFrame里!