c++ MFC文字处理程序问题

描述:我用MFC按照向导生成了一个单文档文字处理程序,实际上跟一个记事本程序差不多:可以在用户区编辑文本,以及文档保存、新建等工作。实际上就是在向导设置的时候,在最后一步... 描述:我用MFC按照向导生成了一个单文档文字处理程序,实际上跟一个记事本程序差不多:

可以在用户区编辑文本,以及文档保存、新建等工作。

实际上就是在向导设置的时候,在最后一步将视类的基类设为CEditView

我做这个程序的目的是想实现一个对文档的简单加密:我在编辑区输入一些字符,然后保存为一个TXT文件,但是我想在“保存”这个动作执行的时候对我输入的字符内容作一定的运算,使之成为乱码,然后把这些乱码保存到一个文档(假设名为1.txt);而当我用这个程序再次打开1.txt的时候,再通过运算将字符还原成可读的文字,并显示到视窗内。

假如我这个工程名叫test,按向导设置完后,可以看到程序代码有以下几个类:CMainFrame,CTestAPP,CTestDoc,CTestView,其他略。
在CTestDoc下有一个成员函数叫Serialize(CArchive& ar),即:
void CTestDoc::Serialize(CArchive& ar)
{
// CEditView contains an edit control which handles all serialization
((CEditView*)m_viewList.GetHead())->SerializeRaw(ar);
if (ar.IsStoring())
{//文件将要保存
}
else
{//文件将被加载
}
}
此处的if和else语句是我加的。
我觉得应该在这if和else里面对字符进行运算,但是有两个问题:

第一,我不知道怎么才能获取到用户输入的字符内容(特别说明,是输入的内容,而不是要得到这个文档对象),主要原因是所有代码都是MFC辅助生成的,我不知道用户输入的字符被保存到哪个类下的哪个成员变量里去了,只是可以肯定这个量应该是个指向CString类变量的一个指针,只有获取到了这个指针,才能捕获用户的输入并进行运算。

第二,由于上面的if和else语句是我后来加的,也就是说原来代码里是不做这个判断的,但是同样可以对文件进行保存和读取,所以我怀疑我是不是找错地方了,可能根本不在这个函数下作修改

请高手赐教,灌水绕道。。。

先给80分,回答满意的话追加100分,绝不食言

希望回答者先用MFC生成一下,单文档的,关键按向导一步步往下设,到最后一步视类的基类设为CEditView,其他设置都不重要
展开
 我来答
zhlonglt
2009-11-23 · TA获得超过130个赞
知道小有建树答主
回答量:109
采纳率:0%
帮助的人:0
展开全部
ctrl+w 打开类向导 找到CEditorView的WM_CHAR消息,双击添加一个OnChar
在OnChar函数中加入如下代码
static CString lines(""); //lines可以定义在CEditorView的头文件中,成为全局的
lines+=(char)nChar; //lines就是你要的
if(nChar=='\r') MessageBox(lines,"我是用来测试的");
何处淬吴钩
2009-11-23 · TA获得超过5045个赞
知道大有可为答主
回答量:2947
采纳率:50%
帮助的人:2464万
展开全部
第一:获得View对象指针pView。
CString str;
pView->GetWindowText(str);
第二:
((CEditView*)m_viewList.GetHead())->SerializeRaw(ar);这行语句执行默认的序列化操作,要想用自己的替换,把这行删掉,然后再执行你的代码。

另:获得视图对象指针的方法可参考我空间里的文章。
http://hi.baidu.com/%BA%CE%B4%A6%B4%E3%CE%E2%B9%B3/blog/item/bb5c950b1cbdbd1994ca6b07.html
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
毛寳寳
2009-11-29 · TA获得超过187个赞
知道答主
回答量:96
采纳率:0%
帮助的人:0
展开全部
说的太笼统,麻烦。

你的需求是什么

在单文档上实现windows自带的那种记事本,是吗?
有保存,另存为功能? 是么

如果是很简单

如果是加我

254560671
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pjl110
2009-11-30 · TA获得超过587个赞
知道小有建树答主
回答量:285
采纳率:0%
帮助的人:101万
展开全部
我以前做过一个这样的小程序,要不我发给你!看了你就明白了。qq:790289559
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式