Aoi32(0, 0, 6, 1/Osaki #60) -変更されたかどうかのフラグを追加. etc...

変更されたかどうかのフラグを追加し、ファイルを開いた時やウィンドウを閉じた時に、EM_GETMODIFYでエディットコントロールの状態をチェックしてみた結果、システムからの変更(今回は読み込み時のSetWindowTextのみだが)はEM_GETMODIFYの対象外であることがわかった。

MainWindow.hで、

CMainWindowに、変更されたかどうかのフラグm_bModifiedを追加。
(当初、CTextFileかなとおもったが、あちらはファイルを管理するものだからそこではない。ただ、だったらCEditかなともおもうが、文字コードや改行コードなどのメニューで切り替えられる状態もあるので、ちょっとそれも今のところは違うかなとおもっている。)

MainWindow.cppでは、

コンストラクタやデストラクタでm_bModifiedをFALSE。

OnCreate、OnDestroyでもFALSE。

OnFileOpenでファイルを読み込み、エディットコントロールにセットした後で、EM_GETMODIFYで変更状態をチェック。

閉じる時も、EM_GETMODIFYでチェックをする。

開く
開く

ファイルを開くと、

Not Modified!
Not Modified!

何もないエディットコントロールに読み込んだテキストがセットされたのだから、変更されたフラグが立つものだとおもったら、"Not Modified!"。
システムというかAPIであるSetWindowTextでの変更は対象外だということがわかる。

確認
確認

閉じようとすると、確認ダイアログが出るので、ここでOKを押すと、

ここでも
ここでも

当然、ここでのチェックも"Not Modified!"となる。

開く
開く

改めて、もう一度テストしてみる。また、開くと、

Not Modified
Not Modified

当然、"Not Modified!"。

手入力変更
手入力変更

読み込んだら、今度は手入力で変更してみる。
これで閉じると、

確認
確認

これが出て、OKを押すと、

Modified!
Modified!

今度は"Modified!"になっている。
つまり、手入力で変更された時のみ、フラグが立つようになっている。

-変更されたかどうかのフラグを追加. · bg1bgst333/Aoi32@7946784 · GitHub