2010-07-14 72 views
0

我尝试使用重做选项,我已经为重做编写了下面的代码,但是重做撤消的检测工作是一样的。请指导我出错的地方。 我的代码示例是.....MFC重做功能

void EIWBDoc::OnEditRedo() //for REDO. 
{ 
// TODO: Add your command handler code here 
    int Index = m_FigArray.GetUpperBound(); 
    if (Index > -1) 
    { 
     delete m_FigArray.GetAt(Index); 
     m_FigArray.RemoveAt (Index); 
    } 
    UpdateAllViews (0); 
    SetModifiedFlag(); 
} 

void EIWBDoc::OnUpdateEditRedo(CCmdUI* pCmdUI) //for redo. 
{ 
    // TODO: Add your command update UI handler code here 
    pCmdUI->Enable (m_FigArray.GetSize()); 

} 

I M存储所有的删除意味着撤消内容到一个array.Now我需要同调入我重做()。我应该怎么做?

回答

1

从这个小片段中,它看起来像你是删除最后'fig'已被添加。这听起来更像是一种“撤消”行为。

我怀疑你想要最后'fig'已被'undone',已经存储在你的'undo'方法中。

您的命令启用程序只需要在重做时重新启用“重做”功能,而不是在文档中出现“无花果”时启用。