テキストが変更された瞬間から、ウィンドウタイトル左に変更マークが表示されるようにする。
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 - Aoi"になった。
追加すると、"* Test.txt - Aoi"となる。
名前を付けて保存。
Test.txtを指定。
上書きで「はい」
Test.txtに保存され、タイトルは"Test.txt - Aoi"に戻る。
エディットコントロールは変更状態ではないが、文字コード切り替えも変更扱いなので、"* Test.txt - Aoi"となる。
閉じると、これが出るので「OK」で、
今度はこっちが出るので、「はい」を選ぶと閉じて終了。
改めて開くと、"Test.txt - Aoi"で文字コードもUnicode。
さらに追加すると、"* Test.txt - Aoi"となる。
Test.txt自身に名前を付けて保存すると、
これが出るので上書きすると、
"Test.txt - Aoi"になっている。
-入力内容が変更されている場合にウィンドウタイトルに変更マークを点ける. · bg1bgst333/Aoi32@efded31 · GitHub