我在Ondraw中添加了随机绘制小圆点的代码,然后生成MFC窗体时,将他最大化,他会重新会制点并且与第一次生成的点不同(坐标不同)
顺便问一下,怎么将绘制的东西自动保存成图片
MFC窗口中绘制的图像在改变窗口的大小或者拉动滚动条时会重新绘制,请问如何修改才能让他不重新绘制?
答案:5 悬赏:80 手机版
解决时间 2021-03-17 07:49
- 提问者网友:战魂
- 2021-03-16 22:09
最佳答案
- 五星知识达人网友:山河有幸埋战骨
- 2021-03-16 23:49
思路是错误的。不重绘,如果最小化后再回来,就变成空的了。
你要解决的是坐标问题,关注函数ScreenToClient的使用,合理记录坐标,让重绘在正确的位置就可以了。
自动保存啥概念?保存DC,需要在绘制之前导入一个空的Bitmap,这样在绘制之后保存这个位图就可以了
你要解决的是坐标问题,关注函数ScreenToClient的使用,合理记录坐标,让重绘在正确的位置就可以了。
自动保存啥概念?保存DC,需要在绘制之前导入一个空的Bitmap,这样在绘制之后保存这个位图就可以了
全部回答
- 1楼网友:孤老序
- 2021-03-17 04:07
看看孙鑫的教程吧,好久不写VC了。里面写的很清楚,还有实例。
再看看别人怎么说的。
- 2楼网友:拜訪者
- 2021-03-17 02:57
2次随机的位置不同导致的,设置个变量去控制下
- 3楼网友:刀戟声无边
- 2021-03-17 01:24
重绘是正常的,关键是在重绘的时候个点位置坐标不变。
- 4楼网友:長槍戰八方
- 2021-03-16 23:55
方便很多,知识面最低的一种是用数组将所做操作保存起来,然后在OnDraw中重新按数组里存的数据再做一次同样的操作,这种方法一般新手都可以用但写起来比较麻烦,代码比较多。
第二种方法是使用一个CPtrCarray集合,将所有操作定为一个结构体,然后用这个集合将结构体串行起来用法有点小复杂,自己 找资料看下
第三种也是比较专业的用法,CMetaFileDC 图元DC可以对DC所做的操作记录下来,然后再重新播放,但会涉及到一个设备坐标和环境坐标的因素,比较复杂
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯