菜鸟提问,为什么用m_wndStatusBar.SetPaneText()会出错
照书上的写法,在单文档中首先增加一个字符串资源,如ID_NEWPANE,初值为00,然后在CFrameWnd类中加入
static UINT indicators[] =
{
ID_SEPARATOR,
ID_NEWPANE,
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
这时编译后已经可以看到窗格,显示为00。这时我想改变它的显示值,不是初值,还是照书上的写法,直接在OnCreat()函数中加入
m_wndStatusBar.SetPaneText(ID_NEWPANE,"");
此时编译没有错,但是运行时会弹出出错框。应该是ASSERT错误。调试可以找到是下面的函数出错
inline AFX_STATUSPANE* CStatusBar::_GetPanePtr(int nIndex) const
{
ASSERT((nIndex >= 0 && nIndex < m_nCount) || m_nCount == 0);
return ((AFX_STATUSPANE*)m_pData) + nIndex;
}
这么用SetPaneText()是不是不对啊,请各位大侠赐教!