MFC中窗口重绘问题

我创建了一个叫Test的工程,并在CTestView类添加了WM_CHAR消息响应函数,这样我在这个消息响应函数里就可以编写代码,实现在客户区敲键盘输出字符,但是当我拉大... 我创建了一个叫Test的工程,并在CTestView类添加了WM_CHAR消息响应函数,这样我在这个消息响应函数里就可以编写代码,实现在客户区敲键盘输出字符,但是当我拉大窗口时,这些字符就没了,我知道是发生了窗口重绘,需要在OnDraw函数中将字符再次输出才行,但是OnDraw中我不知道该怎么编写代码,跟WM_CHAR消息响应函数中的代码一模一样么?我试过了不行,哪位朋友能帮我解决这个问题? 展开
 我来答
jiangsanhuo
2014-08-14 · TA获得超过169个赞
知道小有建树答主
回答量:291
采纳率:81%
帮助的人:174万
展开全部
把所有需要绘制的数据保存下来,在OnDraw画出来

OnChar ->将字符存入数组 ,调用Invalidate

OnDraw ->访问字符数组,画到DC上
灰机h4
2014-08-14 · TA获得超过118个赞
知道答主
回答量:167
采纳率:0%
帮助的人:124万
展开全部
ondraw只重绘view部分,就是一开始生成的白的部分,俗称客户区,工作区。工具栏菜单栏属于框架类。ondraw绘制的部分不但显示在屏幕上而且可以输出到打印机等其他输出设备上,onpaint是处理窗口在标准输出(显示器)重绘的。因此光标的处理不应该在ondraw中(除显示器外其他输出设备是不应显示光标的)。
别着急,慢慢来,等你对mfc基本结构有了了解再翻回来看,慢慢你会明白的。
追问
请不要再复制粘贴了,谢谢!这个回答我在别的地方看到很多次了~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
可爱的_jolin
2014-08-14
知道答主
回答量:9
采纳率:0%
帮助的人:3.2万
展开全部
在ondraw()函数调用OnChar()就可以了
更多追问追答
追问
你的回答让我眼前一亮!!但是OnChar()中的参数在它自己响应的时候不需要我们设置,但是从OnDraw()函数中调用的话就得设置参数了,我没弄出来,求教~~
追答
增加成员变量保存之前你调用onchar()的参数(可以用链表的方式),在ondraw()函数里进行循环,把之前保存的参数传给onchar()就好了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式