关于MFC 的重画机制 求大神解答 在线等 求救

我的OnDraw函数中有一个变量intcontrol当是1的时候用textout输出了几行文字,当是0的时候什么都不画。在view的构造函数中设置control为1,自然... 我的OnDraw 函数中有一个变量int control 当是1的时候 用textout输出了几行文字,
当是0的时候什么都不画。在view的构造函数中设置control为1,自然就输出了几行文字,我在程序中使得control为0,调用Invalidate(TRUE); UpdateWindow(); 后客户区应该是空白啊,但是还有之前的几行文字,我试过在当control为0的时候在之前那几行文字下边画一个圆,圆能显示出来,我猜测是之前的文字挡住了客户区的空白,但是怎么把这个挡住的文字给去了呢……
展开
 我来答
luosiyong
2012-05-20 · TA获得超过3256个赞
知道大有可为答主
回答量:1090
采纳率:0%
帮助的人:1627万
展开全部
首先,MFC但文档的工程,系统会带一个这样的 OnDraw(CDC* pDC)
你确定你写的OnDraw没有覆盖掉系统的。
另外,你可以在OnDrow函数的开头MessageBox或者其他方式输出一下,看Invalidate之后该函数是否被调用到了。
如果都调用到了,再检查OnDrow里面的逻辑是否正确的
更多追问追答
追问
我就是在原来的OnDrow里面改的
我试过了 MessageBox 调用到了 就是前一次的背景一直覆盖着 重新画之前想擦了原来的背景
追答
那你是直接把 CDC* pDC 参数改成int型了?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式