0
我创建了状态栏CStatusBar statusBar;
在 的class CMainFrame : public CFrameWnd
类,我这样做:MFC如何为状态栏启用对接?
if (!statusBar.CreateEx(this, TBSTYLE_AUTOSIZE, WS_CHILD | CBRS_TOP | WS_VISIBLE | CBRS_GRIPPER) ||
!statusBar.LoadToolBar(IDR_TOOLBAR))
{
return -1;
}
if (!statusBar.CreateEx(this, SBARS_TOOLTIPS, WS_CHILD | WS_VISIBLE | CBRS_BOTTOM | CBRS_GRIPPER))
{
return -1;
}
statusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));
//然后尝试:
statusBar.EnableDocking(CBRS_ALIGN_BOTTOM); // here I recieve an assertion
EnableDocking(CBRS_ALIGN_BOTTOM);
DockControlBar(&statusBar);
什么是这里的错误(几乎相同的行为作品为工具栏)? 是否有可能使一个状态栏与启用对接?
我beelieve有可能因为我有这样的画面:
] 1
UPD
这是我的代码:
if (!m_wndStatusBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_BOTTOM | CBRS_GRIPPER | CBRS_FLYBY | CBRS_SIZE_DYNAMIC))
{
TRACE0("Не удалось создать строку состояния\n");
return -1;
}
m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));
// TODO:
m_wndStatusBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndStatusBar);
我仍然收到一个断言,只有当我加入DockControlBar(&m_wndStatusBar);
。 没有这个是不行的,我认为这是正常的 但它为什么不起作用呢?
哇,这是一个糟糕的编辑。你只是改变了你的问题100%。相反,*问一个新的问题!*。回滚到之前的编辑。 – crashmstr
我想知道一个新的问题。但阻止它(:。 –
也我找到了答案http://stackoverflow.com/questions/1896341/can-constructor-call-another-constructor-in-c 感谢回滚 –