EM_SETMODIFY

EM_GETMODIFYで変更されたかどうかが取得できるわけだが、テキストファイルを保存した直後はそのテキストファイルとエディットコントロールの入力内容は同じなので、変更されていないという状態に戻さないといけない。
EM_SETMODIFYで変更状態のフラグを設定できる。

EM_SETMODIFY message - Windows applications | Microsoft Docs

resource.hで、

リソースIDのID_ITEM_RESET_MODIFYを追加。

EM_SETMODIFY.rcで、

メニューアイテムに”Reset Modify”を追加し、ID_ITEM_RESET_MODIFYを割り当てる。

EM_SETMODIFY.cppでは、

”Reset Modify”が選択されたら、SendMessageの第3引数にFALSEを指定して、EM_SETMODIFYを送る。
これで、変更された状態でもフラグを降ろして、変更されていない状態になる。

起動時
起動時

起動時、この状態で、

Check Modify
Check Modify

"Check Modify"を選択しても、変更されていないので、当然何も起こらない。

"ABCDE"と入力
"ABCDE"と入力

"ABCDE"と入力してから、

Check Modify
Check Modify

"Check Modify"を選択すると、

Modify!
Modify!

変更された状態なので"Modify!"が表示される。

Reset Modify
Reset Modify

ここで、"Reset Modify"を選択してから、

Check Modify
Check Modify

"Check Modify"を選択すると、

何も起こらない
何も起こらない

何も起こらない。
変更状態のフラグが降ろされているからである。
このままウィンドウを閉じても、"Modify!"は表示されない。

Sample/winapi/EM_SETMODIFY/EM_SETMODIFY/src/EM_SETMODIFY at master · bg1bgst333/Sample · GitHub