首先我使用对话框+RichEdit控件模拟的一个记事本程序,我想实现这个功能,就是点击退出的时候看一下编辑部分是否改变了,如果改变的话,那就弹出保存对话框。如果打开后什么都不做,那退出的时候必然是直接退出。目前我遇到的文件就是如何监视RichEdit控件输入文本部分的改变,我试过通过比较字符串的大小来判断,但是你添加一个再删除一个字符就会出现逻辑上的问题,所以我想到必须监视编辑部分的变化,一点发生了变化,就需要保存。但是如何监视变化呢,请各位高手帮忙分析一下,想了好几个小时,不知道怎么做,急。
调试欢乐多
添加 一个成员变量 来标记 文本是否发生变化
映射 RichEdit控件的 EN_CHANGE,(在编辑器双击RichEdit控件 就会生成对应的函数)
在函数里修改 这个成员变量添加一个再删除这个字符,退出时不保存?
Windows的记事本都没这功能,其他多数的编辑器都没
估计实现起来很麻烦
long lMask = m_myREdit.GetEventMask();
lMask |= ENM_CHANGE;
lMask &= ~ENM_PROTECTED;
m_myREdit.SetEventMask(lMask);
然后在进行onchange的操作,问题解决。
然后当用户关闭程序时,响应WM_CLOSE消息,再次获取编辑框文件,看前后这两个变量是否相同,若不同,则提示用户。