不使用拆分窗口时,我们在CView的OnDraw()函数中,或者在OnPaint()中绘图。
如果使用拆分窗口时,在各个拆分窗口中,我们在什么地方绘图?还有,拆分窗口的各种消息响应函数在什么地方?如何添加?谢谢!

解决方案 »

  1.   

    拆分后的每个窗口都有他自己的视图啊,他视图的ONDRAW,ONPAINT就只管这个窗口里绘图啊,你想在哪个视图里画就在哪个视图里ONDRAW,ONPAINT写就行了啊
      

  2.   


    我们不用拆分窗口时,创建了工程,就生成了一个CView类,重载它的OnDraw()即可实现绘图。
    如果拆分窗口,从那里找到各个拆分窗口对应的CView类?
     忘不吝赐教!
      

  3.   

    MainFrm,拆分的地方,
    if (!m_wndSplitter.CreateView(0, 0,
    RUNTIME_CLASS(CBackPlayerView), CSize(ViewWidth-dluconv, 100), pContext))
    {
    TRACE0("Failed to create first pane\n");
    return FALSE;
    } if (!m_wndSplitter.CreateView(0, 1,
    RUNTIME_CLASS(CDemCloudpara), CSize(dluconv, 100), pContext))
    {
    TRACE0("Failed to create second pane\n");
    return FALSE;
    }
      

  4.   


    谢谢!
    你给出的代码是vc++吗?
    我编译不能通过,我用的是vs20081>Compiling...
    1>MainFrm.cpp
    1>h:\shader_player\shader_player\mainfrm.cpp(180) : error C2337: 'color' : attribute not found
    1>h:\shader_player\shader_player\mainfrm.cpp(180) : error C2061: syntax error : identifier 'CBackPlayerView'
    1>h:\shader_player\shader_player\mainfrm.cpp(180) : error C2039: 'GetThisClass' : is not a member of '`global namespace''
    1>h:\shader_player\shader_player\mainfrm.cpp(181) : error C2143: syntax error : missing ';' before '{'
    1>h:\shader_player\shader_player\mainfrm.cpp(187) : error C2337: 'color' : attribute not found
    1>h:\shader_player\shader_player\mainfrm.cpp(187) : error C2061: syntax error : identifier 'CDemCloudpara'
    1>h:\shader_player\shader_player\mainfrm.cpp(187) : error C2039: 'GetThisClass' : is not a member of '`global namespace''
    1>h:\shader_player\shader_player\mainfrm.cpp(188) : error C2143: syntax error : missing ';' before '{'
    1>Build log was saved at "file://h:\shader_player\shader_player\Debug\BuildLog.htm"
      

  5.   

    BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext) 
    {
    CRect rc;
    this->GetClientRect(&rc); g_iMainFrmWidth = rc.Width();
    g_iMainFrmHeight = rc.Height(); m_wndSplitter1.CreateStatic(this,1,2); //分割窗口,总体左右两列 m_wndSplitter1.SetColumnInfo(0, g_iMainFrmWidth/2, 10);
    m_wndSplitter1.SetColumnInfo(1, g_iMainFrmWidth/2, 10); m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CVideoView),CSize(g_iMainFrmWidth/2,0),pContext);
    m_wndSplitter1.CreateView(0,1,RUNTIME_CLASS(CRecoResultView),CSize(0,0),pContext);       return TRUE;
    }
    =======================================
    CVideoView和CResultView分别对应一个视图类,它们有各自的OnDraw函数啊比如,你在资源里添加两个对话框,为这两个对话框分别添加CVideoView类和CResultView类,这两个类你可以派生自CFormView类。
      

  6.   


    还没有看见你回复的内容,就看到你漂亮的照片,你很漂亮嘛!谢谢!CreateStatic()创建静态的拆分窗口,如果创建动态的呢?
    谢谢!
      

  7.   

    还有,创建工程的时候,已经创建了一个View,我在该View中绘图,在左上角上的切分窗口中绘制了图形。
    其他几个切分窗口都是黑的。
    创建工程的时候创建的View,和我们在OnCreateClient()中创建的View是什么关系呢?谢谢指教!