我采用了静态拆分窗口以后:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
CCreateContext* pContext)
{
m_wndSplitter.CreateStatic(this,2,1);
m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CNickp2pView),CSize(0,300),pContext);
         m_wndSplitter.CreateView(1,0,RUNTIME_CLASS(CNickList),CSize(0,0),pContext);
SetActiveView((CView*)m_wndSplitter.GetPane(1,0));
return true;
}
其中的CNickp2pView和Document以及MainFrame绑定过,如下:
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CNickp2pDoc),
RUNTIME_CLASS(CMainFrame),       // 主 SDI 框架窗口
RUNTIME_CLASS(CNickp2pView));
CNickp2pDoc,CMainFrame,CNickp2pView都是自动生成的。CNickp2pView工作地很好
由于需要两个窗口,我又自己写了一个class CNickList : public CListView的类,但是这个类中的OnInitialUpdate和OnDraw函数都不会被调用,不知为何,请高手作答,谢谢!

解决方案 »

  1.   

    CListView是列表视图,是简化了的CListCtrl控件,整个视图
    就是这个控件,并不是客户区的视图所以没有调用OnDraw()函数至于nInitialUpdate()是可以调用的啊,需要对CListView做更新
    初始化工作
      

  2.   

    恩,OnDraw我知道了,但是OnInitialUpdate还是不知如何使其发挥作用,CNickp2pView中我也实现了OnInitialUpdate,在程序运行时会被调用,但是CListView中的OnInitialUpdate就是不会被调用,而且我也有m_wndSplitter.CreateView(1,0,RUNTIME_CLASS(CNickList),CSize(0,0),pContext);这句,有这句不能把CNickList关联到(1,0)这个pane上吗?请问需要如何初始化?谢谢!
      

  3.   

    程序运行的时候,有没有显示分割的试图呢?BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,  CCreateContext* pContext) 

    CRect rect;
    GetWindowRect(&rect);
    BOOL bRes=m_wndSplitter.CreateStatic(this,1,2);    //创建两个水平静态窗格
    m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CNickp2pView),CSize(0,0),pContext); 
    m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CNickList),CSize(0,0),pContext); 
    m_wndSplitter.SetColumnInfo(0,rect.Width()/3,10);   //设置列宽
    m_wndSplitter.SetColumnInfo(1,2*rect.Width()/3,10);   
    m_wndSplitter.RecalcLayout();        //重新布局 return nRes; 

    这样来分割试图试试。
      

  4.   

    我原来的是一列两行的分割法,两个窗口是出来了,但是我在CNickList::OnInitialUpdate()中设置的断点却没有生效,说明这个函数应该没有被调用,前面我试过了你贴出来的代码,可以生成两个一行两列的窗口,但是我期待的在CNickList中的列表还是没有出现,不知为何要不我把整个工程发给你看看?
      

  5.   

    我的那个代码是设置成一行两列的窗口的。
    你想要列表的话,可以不用从CListView派生的,直接使用CListView也行的
    发给我也行。[email protected]我的邮箱,帮你看看吧