定义了
CMFCRibbonStatusBar  m_wndStatusBar;
在框架类中进行了创建
CString strTitlePane1;
CString strTitlePane2;
bNameValid = strTitlePane1.LoadString(IDS_STATUS_PANE1);
ASSERT(bNameValid);
bNameValid = strTitlePane2.LoadString(IDS_STATUS_PANE2);
ASSERT(bNameValid);
m_wndStatusBar.AddElement(new CMFCRibbonStatusBarPane(ID_STATUSBAR_PANE1, strTitlePane1, TRUE), strTitlePane1);
m_wndStatusBar.AddExtendedElement(new CMFCRibbonStatusBarPane(ID_STATUSBAR_PANE2, strTitlePane2, TRUE), strTitlePane2);
想在视类中捕获鼠标的移动显示在状态栏上
void CExpressPrintView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CString strCoordinate;
strCoordinate.Format(_T("X:%d Y:%d"), point.x, point.y);
((CMainFrame*)GetParent())->m_wndStatusBar.GetExElement(0)->SetText(strCoordinate);
CScrollView::OnMouseMove(nFlags, point);
}
程序运行后提示非法操作,但在框架类创建后再修改就不会报错.
CString strTitlePane1;
CString strTitlePane2;
bNameValid = strTitlePane1.LoadString(IDS_STATUS_PANE1);
ASSERT(bNameValid);
bNameValid = strTitlePane2.LoadString(IDS_STATUS_PANE2);
ASSERT(bNameValid);
m_wndStatusBar.AddElement(new CMFCRibbonStatusBarPane(ID_STATUSBAR_PANE1, strTitlePane1, TRUE), strTitlePane1);
m_wndStatusBar.AddExtendedElement(new CMFCRibbonStatusBarPane(ID_STATUSBAR_PANE2, strTitlePane2, TRUE), strTitlePane2);
m_wndStatusBar.GetExElement(0)->SetText(_T("ok"));请教大家这是什么原因呢?用什么办法能解决?谢谢!