這個問題是我前一個問題的後續。 首先感謝這些鏈接和示例,它們可以工作於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
任何幫助將不勝感激!