这个问题是我前一个问题的后续。 首先感谢这些链接和示例,它们可以工作于CMDIChildWnd派生的CChildFrame类,但不适用于CMDIChildWndEx派生类。如何在CMDIChildWndEx派生的CChildFrame中创建工具栏?
我想要做什么:
我想创建在CChildFrame窗口工具栏(从CMDIChildWndEx !!派生)
是我迄今所做的: 1)创建的MDI选项卡式文档使用VS2008Pro App向导的CView项目。 2)在CChildFrame我增加的OnCreate()
INT CChildFrame:在OnCreate(LPCREATESTRUCT LPCREATESTRUCT) { 如果(CMDIChildWndEx:在OnCreate(LPCREATESTRUCT)== - 1) 返回-1;
// TODO: Add your specialized creation code here
if (!m_wndToolBar.Create(this) ||
!m_wndToolBar.LoadToolBar(IDR_CHILDFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
// TODO: Remove this if you don't want tool tips or a
// resizeable toolbar
m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
// TODO: Delete these three lines if you don't want the toolbar
// to be dockable
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar); // Goes wrong here !!
return 0;
}
它编译和运行,并停止到ASSERT在winfrm2.cpp(线 92):
空隙CFrameWnd的:DockControlBar(CControlBar * PBAR,CDockBar * pDockBar, LPCRECT lpRect) ENSURE_ARG(pBar!= NULL); //确保CControlBar :: EnableDocking已被调用 ASSERT(pBar-> m_pDockContext!= NULL);
if (pDockBar == NULL)
{
for (int i = 0; i < 4; i++)
{
if ((dwDockBarMap[i][1] & CBRS_ALIGN_ANY) ==
(pBar->m_dwStyle & CBRS_ALIGN_ANY))
{
pDockBar = (CDockBar*)GetControlBar(dwDockBarMap[i][0]);
/* -------->在这里出错------> */ASSERT(pDockBar!= NULL); //当条的初始CBRS_不为 时//断言失败//与可用停靠点匹配,如由EnableDocking()设置的 break; } } } ENSURE_ARG(pDockBar!= NULL); ASSERT(m_listControlBars.Find(pBar)!= NULL); ASSERT(pBar-> m_pDockSite == this); //如果发生了这种说法是因为PBAR的父母是 最初没有 //这个CFrameWnd的时候 //即此控制栏应已随不同 父最初
pDockBar->DockControlBar(pBar, lpRect);
创建PBAR的OnCreate被称为 管线92
}
:
ASSERT(!pDockBar = NULL);当酒吧的初始CBRS_不 //匹配可用的停放地点,由EnableDocking()设置 //断言失败
这里的来源甚至给出错误的发生的事情解释一下这里 但我不知道如何搭配'初始的CBRS_条设置为 EnableDocking()''
这是否适用于CMDIChildWndEx派生的CChildFrame类?
那么我的问题是否有人知道如何添加一个工具栏到 CMDIChildWndEx派生CChildFrame类? 关于如何使这项工作的任何建议?
我的项目是在这里: http://www.4shared.com/file/235762968/49b8b97a/GUI50.html
任何帮助将不胜感激!