int CViewRightList::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
if (CListView::OnCreate(lpCreateStruct) == -1)
return -1;
    CMDIChildWnd * pFrame = (CMDIChildWnd*)GetParentFrame();    if (!m_bottomBar.Create(this,IDD_BOTTOMBAR, CBRS_BOTTOM|CBRS_GRIPPER,151))
{
TRACE0("Failed to create dialogbar\n");
return -1;
}
//这里的Create是重载的,这个我在应用层可以,但放在View显示不出
    pFrame->EnableDocking(CBRS_ALIGN_ANY);
    
    
    return 0;

}

解决方案 »

  1.   

    设定大小,保证有WS_VISIBLE或调用ShowWindow(SW_SHOW);
      

  2.   

     CMDIChildWnd * pFrame = (CMDIChildWnd*)GetParentFrame();
    pFrame->EnableDocking(CBRS_ALIGN_ANY);
    这里获取的不是View的指针吧?!
      

  3.   

    参照向导自动产生的代码改

    if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
    | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
    !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
    {
    return -1;      // fail to create
    }
      

  4.   

    为子窗口添加工具栏不要在View上做。
    在CChildFrame添加OnCreate(),在这个函数里面添加工具栏,做法参照CMainFrame里面的OnCreate添加工具栏的做法。工具栏和客户区都占用子框架的位置。
      

  5.   


    在CChildFrame 添加OnCreate()之后呢
    CChildFrame跟子窗口有什么关系,子窗口怎样添加工具栏?
      

  6.   

    搞不出来,大家好像理解错了,我不是在MDI的子窗口,而是在SDI的多视窗里
      

  7.   


    CMDIChildWnd * pFrame = (CMDIChildWnd*)GetParentFrame();SDI里面怎么有这个?
      

  8.   

    好像没看懂问的啥 路过了
    ((CMainFrame*) GetTopLevelFrame ())->
      

  9.   

    噢噢噢噢  CViewRightList  你把它的基类设置成哪个? 是ListView吗
      

  10.   

    创建工具栏应该是在框架里创建的吧。不是在view类创建的。因为工具栏属于框架的一部分,并不是视图的部分。所以应该在CChildFrame添加OnCreate(),在这个函数里面添加工具栏