2010-07-14 75 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'方法中。

您的命令啓用程序只需要在重做時重新啓用「重做」功能,而不是在文檔中出現「無花果」時啓用。