标题:记事本的编程问题
只看楼主
jianli
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2006-9-14
 问题点数:0 回复次数:6 
记事本的编程问题
我想问一下,编记事本的问题:
我用APPWIZARD.EXE创建一个程序柜架后,在VIEW类里加个WM_CHAR消息响应函数后,在这里面写了输入文本的程序代码。但是窗口重绘后,文本内容没有了。在VIEW类内还有个WM_PAINT消息响应函数。我知道只有在这个函数里写的程序才可以在窗口重绘时才可以还能显示出来。但如何才能,让我的文本程序在这个函数内写出来。从键盘输入信息是不是只能在WM_CHAR消息响应函数里写啊?两个函数应该怎样安排啊?也就是说,我怎样才能让我输入的文本信息在窗口重绘时,还能显示出来?
麻烦给我说一下,整个思路?
搜索更多相关主题的帖子: 记事本 文本 VIEW 响应函数 
2006-09-30 22:21
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
得分:0 
把你WM_CHAR函数的nChar都存进一个容器里,或者链表里,然后在OnDraw()里把那些全部都Textout出来。

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-09-30 22:25
jianli
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2006-9-14
得分:0 
我用一个变量行吗?我是个初学者,能学得稍微详细一点吗?
版主。对了版主问一个私人问题,你是在校的大学生吗?今年大几啊?我刚学VC++,我9月份开始学的。
2006-10-01 00:59
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
得分:0 
哦,我和你一样,都是学生。
编程年龄==在此论坛的时间

[此贴子已经被作者于2006-10-1 8:57:30编辑过]


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-10-01 08:57
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
得分:0 
CStringArray vecStr;
在响应WM_CHAR时,就应该把所有的字符存进一个CString中。
假设这个临时存储是CString temp("");
temp+=(char)nChar;
在OnDraw时,就把这个temp中的内容按照\n为分隔,都给进字符串数组中去。
//下面相当于一个循环了。
比如把第一个\n之前的字符存进str里。
然后strArr.add(str);
然后GetTextMetrics(LPTEXTMETRIC ltMetric);获取字体大小。
//传一个TEXTMETRIC结构的地址做参数进去,做返回用。
Textout()的坐标就按照字体大小的tmHeight递增。x坐标都是0。

[此贴子已经被作者于2006-10-1 15:24:27编辑过]


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-10-01 09:08
jianli
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2006-9-14
得分:0 

我还是有点看不懂,我再看看,可能是我基础太差,感觉应该恶补。

2006-10-01 15:19
Bekky
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:354
专家分:0
注 册:2006-5-29
得分:0 
其实,MFC给你了一套完整解决方案,就是文档,你把输入全部放在文档里,然后在ONDRAW里画出来就OK了。
你可以看些例子,更傻瓜的办法是,你在创建工程的时候,VIEW的基类选择为CEDITVIEW,那直接就是记事本。

我的编译环境为WinXp + VC 6.0 http://blog..cn/yobo
2006-10-03 14:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-93799-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.351539 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved