创建MFC项目时,选择用ribbon
然后可以把CMFCRibbonStatusBar m_wndStatusBar改成public,或者写个method返回这个变量,以便从view类中获取m_wndStatusBar
再就是view类中添加mousemove的消息处理函数。。。然后这个函数差不多这样:
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)
CMainFrame *pFrame=(CMainFrame *)AfxGetMainWnd()
CRect rect(500,5,600,15) //calculate according
//the coord string length if wish
//pFrame->m_wndStatusBar.GetElement(0)->SetText(strTmp)
//pFrame->m_wndStatusBar.GetElement(0)->SetRect(rect)
pFrame->m_wndStatusBar.GetExElement(0)->SetText(strTmp)
pFrame->m_wndStatusBar.GetExElement(0)->SetRect(rect)
pFrame->m_wndStatusBar.Invalidate()
首先你要了解RibbonBar的结构;RibbonBar分了好几层
1、MainButton
2、普通Category: 最下面是一个Panel,Panel上面是各种元素,可以是CRibbonbarButton,CRibbonBarEdit等控件;
然后重绘你需要的部分:
CMFCRibbonBar 肯定需要重绘,就是继承下原先的类,然后跟普通控件重绘差不多;
左上角的大按钮,所有的Category,还有其他子控件可以选择性重绘,需要用到的再重绘。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)