关于MFC单文档中的图片添加与删除的问题

在打开后,文档中有一幅图片,这个我已经做到了,如下图:

然后点开上面的菜单,里面会弹出窗口,输入数据后,经过一些列运算后,将运算结果显示到文档上,这步我也做了。
现在我的问题是,当把运算的结果那部分文字显示在这个文档上的时候,我不需要这张背景图片了,这个时候怎么去掉?或者我怎样将运算结果显示到另一个新的单文档上?本人非计算机专业,自学vc不久,希望大为大师讲解稍详细些,谢谢各位大师了

现在不清楚你是否是使用双缓冲做的这个,如果是的话基本上在ondraw函数中会使用bitblt这个函数拷贝图片,你可以在这里通过逻辑控制如果需要显示文字内容的时候就不拷贝这个图片,如果是其他方法实现的那需要具体情况具体定了。追问

我是view类中添加了一个画刷变量,然后在view类中加入了以下代码:
CBitmap bmp;
bmp.LoadBitmap(ID);
m_back.CreatePatternBrush(&bmp);
在ondraw函数中加了以下代码:
CRect rect;
GetClientRect(rect);

pDC->FillRect(rect,&m_name);

不知道你说的布尔函数应该加在哪里呢?该怎么加?本人对vc真的很小白……

追答

首先那个函数不是布尔函数,那个是vc双缓冲的图像拷贝用的函数,你这种添加方法是直接把他当做一个背景填充上去的。你可以在程序中添加一个bool变量,初始值可以为true,然后再你需要显示其他内容的时候把这个bool变量赋值为false,在ondraw中的pDC->FillRect(rect,&m_name);修改为if(bool变量){pDC->FillRect(rect,&m_name);},这样就可以实现在你需要显示其他内容的时候这种图片不被加载。基本就可以完成你的需求。如果还有什么问题再论就是了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-22
你的背景图片应该是自己画上去的吧,这样的话你可以用一个bool类型的变量,初始值默认为true,当你将文字显示在文档上的时候将其设置为false,在你画背景的图片的地方使用if判断这个值,只有在true的时候才绘制背景图片,这样不就可以了追问

我是view类中添加了一个画刷变量,然后在view类中加入了以下代码:
CBitmap bmp;
bmp.LoadBitmap(ID);
m_back.CreatePatternBrush(&bmp);
在ondraw函数中加了以下代码:
CRect rect;
GetClientRect(rect);

pDC->FillRect(rect,&m_name);

不知道你说的布尔函数应该加在哪里呢?该怎么加?本人对vc真的很小白……

第2个回答  2013-04-24
就是一个简单的逻辑判断就可以实现。
相似回答