vs2010 中的CMFCRibbonStatusBar 如何不自动更新。
vs2010 中的CMFCRibbonStatusBar 怎么不自动更新。。??
出现的现象是: 坐标可以在状态栏显示,但是状态栏似乎不能自动更新, 鼠标移动到那个状态栏区域了就更新下坐标显示, 不能自动更新, 问下这个改怎么解决????
------解决思路----------------------
m_wndStatusBar.GetElement(0)->SetText(str);
m_wndStatusBar.GetElement(0)->Redraw();
CMainFrm类中的OnCreate函数有一下代码:
CString strTitleMain;
CString strTitleMousePt;
bNameValid = strTitleMain.LoadString(IDS_STATUS_MAIN);
ASSERT(bNameValid);
bNameValid = strTitleMousePt.LoadString(IDS_STATUS_MOUSEPT);
ASSERT(bNameValid);
m_wndStatusBar.AddElement(new CMFCRibbonStatusBarPane(ID_STATUSBAR_MAIN, strTitleMain, TRUE), strTitleMain);
m_pStatusBarPane = new CMFCRibbonStatusBarPane(ID_STATUSBAR_MOUSEPT, strTitleMousePt, TRUE);
//m_pStatusBarPane 是我自己定义的 CMFCRibbonStatusBarPane*类型变量
然后在CMainFrm类中自定义函数:
public:
void CTinyCADMainFrame::OnUpDateStatusBar( CString str )
{
m_pStatusBarPane->SetText(str);
m_wndRibbonBar.Invalidate();
m_wndRibbonBar.UpdateWindow();
}
最后在view内的OnMouse中调CMainFrm中的函数:
void CTinyCADView::OnMouseMove(UINT nFlags, CPoint point)
{
int nOffsetX = GetScrollPos(SB_HORZ);
int nOffsetY = GetScrollPos(SB_VERT);
CPoint pt(0, 0);
pt.x = point.x + nOffsetX;
pt.y = point.y + nOffsetY;
CString strTmp;
strTmp.Format(_T("%4d, %4d"), pt.x, pt.y);
((CTinyCADMainFrame *)AfxGetMainWnd())->OnUpDateStatusBar(strTmp);
CTinyCADZoomView::OnMouseMove(nFlags, point);
}
出现的现象是: 坐标可以在状态栏显示,但是状态栏似乎不能自动更新, 鼠标移动到那个状态栏区域了就更新下坐标显示, 不能自动更新, 问下这个改怎么解决????
------解决思路----------------------
m_wndStatusBar.GetElement(0)->SetText(str);
m_wndStatusBar.GetElement(0)->Redraw();