我是用单视图做的
我要实现的功能就是
我把视图分成上下两个,上面和下面各画各的图互相不影响!
下面的试图在点击分割线的时候弹出来,再点击分割线的时候收回去!
不一定非要点击分割线,做成菜单或者按钮都可以现在我把视图已经动态分割成两个视图了
而且也有点击弹出收回的功能
但是两个视图公用的是同一个view类
我不知道该怎么分配不同的view类
希望有知道方法的大侠给点帮助和提示最好有类似的代码可以研究一下

解决方案 »

  1.   

    OnCreateClient 中
    m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CYourView), CSize(300,0),pContext);  
      

  2.   

    通过CreateView指定视图
    http://vckbase.com/document/viewdoc/?id=192
    看他
      

  3.   

    把主窗口分成几分后  然后通过获得子窗口的子针调用createView,这样就能给每个不同的窗口设置不同的视~~
      

  4.   

    在框架类的OnCreateClient函数,调用CSplitterWnd的CreateStatic、CreateView、CreateView,然后return TRUE,不调用基类的OnCreateClient函数。
      

  5.   

    感谢各位大侠的帮助,但是各位好像说的都是静态分隔视窗的方法
    我用的是动态分割的方法
    也是用CreateView()么?
    jjaikaikai
    如何获得子窗口的指针呢?
    在双击分割条的时候由一个视图变为两个
    在双击分割条的时候又由两个视图变为一个
    这个过程怎么得到子视图的指针?
      

  6.   

    连接数据库也解决了
    但是发现知道怎么画图
    虽然在OnDrow下可以画
    但是我不是想在一开始就画
    我想通过菜单
    处罚一定的事件再画
    但是我不知道如何GetDC()
    直接
    CDC *pDC = GetDC();有问题
    得不到分割后的视图区域。
    大家有什么办法么?
      

  7.   

    定义标志变量,在OnDraw函数中判断这个变量,在事件响应函数中修改变量,并刷新视图。
      

  8.   

    CDC *pDC = GetDC();有问题
    那是因为你把窗口都分成几个视了,pDC->GetDC可能就会出问题,那是不能明白到底是哪个设备上下文
      

  9.   

    参考一下,你可以获取分割后的视图(可以将指针存下来),然后再获取DC:

    if (!m_wndSplitter.CreateStatic(this, 2, 1))
    return FALSE;
    if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CEDocMakerView), CSize(100, 100), pContext))
    {
    m_wndSplitter.DestroyWindow();
    return FALSE;
    }

    if (!m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CImageView), CSize(100, 100), pContext))
    {
    m_wndSplitter.DestroyWindow();
    return FALSE;
    } CEDocMakerView* pView = (CEDocMakerView *)m_wndSplitter.GetPane(0, 0);
    CImageView* pImageView = (CImageView *)m_wndSplitter.GetPane(1, 0);CDC *pDC = pView->GetDC();
    .......
      

  10.   

    感谢楼上的大侠,问题解决了!
    可是放到线程中就出问题了
    出问题的地方还是在CDC *pDC = pView->GetDC(); 
    感谢大家的回答,我先给分,然后再开个贴再问大家!