MFC窗口中绘制的图像在改变窗口的大小或者拉动滚动条时会重新绘制,请问如何修改才能让他不重新绘制?

我在Ondraw中添加了随机绘制小圆点的代码,然后生成MFC窗体时,将他最大化,他会重新会制点并且与第一次生成的点不同(坐标不同)顺便问一下,怎么将绘制的东西自动保存成图... 我在Ondraw中添加了随机绘制小圆点的代码,然后生成MFC窗体时,将他最大化,他会重新会制点并且与第一次生成的点不同(坐标不同)
顺便问一下,怎么将绘制的东西自动保存成图片
展开
 我来答
bhtzu
2013-02-28 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:3720万
展开全部
思路是错误的。不重绘,如果最小化后再回来,就变成空的了。
你要解决的是坐标问题,关注函数ScreenToClient的使用,合理记录坐标,让重绘在正确的位置就可以了。

自动保存啥概念?保存DC,需要在绘制之前导入一个空的Bitmap,这样在绘制之后保存这个位图就可以了
追问
关注函数ScreenToClient的使用,在OnInitialUpdate用吗?
追答
怎么可能。。。在画和记录坐标的时候。
归悦欣cf
2013-03-01 · TA获得超过1442个赞
知道大有可为答主
回答量:4250
采纳率:60%
帮助的人:1197万
展开全部
重绘是正常的,关键是在重绘的时候个点位置坐标不变。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小陆仁
2013-02-28 · TA获得超过162个赞
知道小有建树答主
回答量:255
采纳率:0%
帮助的人:161万
展开全部
2次随机的位置不同导致的,设置个变量去控制下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Icesword冰刃
2013-02-28
知道答主
回答量:17
采纳率:0%
帮助的人:7.7万
展开全部
看看孙鑫的教程吧,好久不写VC了。里面写的很清楚,还有实例。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
slatop
2013-03-23 · TA获得超过1390个赞
知道小有建树答主
回答量:381
采纳率:100%
帮助的人:414万
展开全部
方便很多,知识面最低的一种是用数组将所做操作保存起来,然后在OnDraw中重新按数组里存的数据再做一次同样的操作,这种方法一般新手都可以用但写起来比较麻烦,代码比较多。
第二种方法是使用一个CPtrCarray集合,将所有操作定为一个结构体,然后用这个集合将结构体串行起来用法有点小复杂,自己 找资料看下
第三种也是比较专业的用法,CMetaFileDC 图元DC可以对DC所做的操作记录下来,然后再重新播放,但会涉及到一个设备坐标和环境坐标的因素,比较复杂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式