void CBCGPMSOffice2007DemoView::OnEditUndo() { CBCGPRibbonBar* pRibbon = ((CMainFrame*) GetTopLevelFrame ())->GetRibbonBar (); ASSERT_VALID (pRibbon); CBCGPRibbonUndoButton* pUndoBtn = DYNAMIC_DOWNCAST ( CBCGPRibbonUndoButton, pRibbon->FindByID (ID_EDIT_UNDO)); if (pUndoBtn != NULL && pUndoBtn->GetActionNumber () > 0) { CString str; str.Format (_T("Demo: undo %d action(s)"), pUndoBtn->GetActionNumber ()); MessageBox (str); return; } CRichEditView::OnEditUndo (); }
void CSynBCGPEditView::OnEditUndo() { CBCGPRibbonBar *pRibbon = ((CMainFrame*) GetTopLevelFrame())->GetRibbonBar(); ASSERT_VALID(pRibbon); CBCGPRibbonUndoButton *pEditUndo = DYNAMIC_DOWNCAST(CBCGPRibbonUndoButton, pRibbon->FindByID(ID_EDIT_UNDO)); ASSERT_VALID(pEditUndo); int nActionNumber = pEditUndo->GetActionNumber(); if (-1 == nActionNumber) { m_pEdit->OnUndo(); return; } for (int i = 0; i < nActionNumber; i++) { if (!m_pEdit->OnUndo()) { break; } } }