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 ();
}
示例#2
0
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;
		 }
	 }
}