Aoi32(0, 0, 6, 5/Osaki #64) -入力内容が変更されている場合にウィンドウタイトルに変更マークを点ける.

テキストが変更された瞬間から、ウィンドウタイトル左に変更マークが表示されるようにする。

MainWindow.hで、

変更状態のマークを設定または解除するSetModifiedMarkと、m_pEditの内容が変更された直後の時のハンドラOnEnUpdateを追加。

MainWindow.cppでは、

OnCreateで、リソースIDがWM_APP + 1で、通知コードがEN_UPDATEな、ハンドラCMainWindow::OnEnUpdateを登録。

OnDestroyに、OnEnUpdateハンドラの削除処理も。

OnCloseでマークを点ける部分。ただし、よく考えたら、ここはいらないかも。

OnFileSaveAsで保存された時は、変更マークを消す。

文字コード切り替え、改行コード切り替え、では変更マークを点ける。

OnEnUpdateで、変更マークをセット。

引数のbModifiedと既存のファイルか新規のファイルかの場合で、マークの点け方が違う。
新規の場合、bModifiedがFALSEだと"Aoi"、TRUEだと"* Aoi"となる。
既存のファイルを開いている場合、bModifiedがFALSEだと"(ファイル名) - Aoi"、TRUEだと"* (ファイル名) - Aoi"となる。

起動時
起動時

起動時はこうなる。
"Aoi"だけ。

変更中
変更中

変更中だと、タイトルが"* Aoi"となる。

名前を付けて保存
名前を付けて保存

名前を付けて保存。

Test.txt
Test.txt

Test.txtとして保存。

保存済み
保存済み

タイトルが"Test.txt - Aoi"になった。

追加する
追加する

追加すると、"* Test.txt - Aoi"となる。

名前を付けて保存
名前を付けて保存

名前を付けて保存。

Test.txt
Test.txt

Test.txtを指定。

上書き
上書き

上書きで「はい」

Test.txt
Test.txt

Test.txtに保存され、タイトルは"Test.txt - Aoi"に戻る。

文字コード変更
文字コード変更

文字コードUnicodeに変更。

変更状態
変更状態

エディットコントロールは変更状態ではないが、文字コード切り替えも変更扱いなので、"* Test.txt - Aoi"となる。

終了確認
終了確認

閉じると、これが出るので「OK」で、

保存確認
保存確認

今度はこっちが出るので、「はい」を選ぶと閉じて終了。

改めて開く
改めて開く

改めて開くと、"Test.txt - Aoi"で文字コードUnicode

さらに追加
さらに追加

さらに追加すると、"* Test.txt - Aoi"となる。

Test.txt
Test.txt

Test.txt自身に名前を付けて保存すると、

上書き
上書き

これが出るので上書きすると、

Test.txt
Test.txt

"Test.txt - Aoi"になっている。

-入力内容が変更されている場合にウィンドウタイトルに変更マークを点ける. · bg1bgst333/Aoi32@efded31 · GitHub