#include "stdafx.h" #include "common.h" CMdiTextEdit::CMdiTextEdit( MDIINFO *pMdiInfo ){ this->pMdiInfo = pMdiInfo; isModified = false; BaseNumOfUndoRedo = 0; pTextEditUndoState = (TEXTEDIT_UNDOSTATE *)HeapAlloc( hHeap, HEAP_ZERO_MEMORY, sizeof( TEXTEDIT_UNDOSTATE ) ); pTextEditUndoState->NowPos = 0; } CMdiTextEdit::~CMdiTextEdit(){ for( int i=0; iCommand[i] ){ TextEdit_DeleteUndoData( pTextEditUndoState, i ); } } HeapDefaultFree( pTextEditUndoState ); } void CMdiTextEdit::Modify(){ //変更時 isModified = true; //タブ文字列に変更を示すアスタリスクを付ける pobj_MainTab->NofityModifyDocument( pMdiInfo->title.c_str() ); } void CMdiTextEdit::UnModify(){ //変更状態解除 isModified = false; //アスタリスク表示を解除する pobj_MainTab->NofityUnModifyDocument( pMdiInfo->title.c_str() ); //アンドゥーリドゥーのベース番号を取得 BaseNumOfUndoRedo = pTextEditUndoState->NowPos; } bool CMdiTextEdit::IsModified(){ return isModified; } void CMdiTextEdit::NofityUndoRedoToModify(){ if( BaseNumOfUndoRedo == pTextEditUndoState->NowPos ){ //変更なし if( IsModified() ){ UnModify(); } } else{ //変更あり if( ! IsModified() ){ Modify(); } } }