如何重绘背景的一部分区域

reality123456 2009-11-12 03:24:38
我用qq农场的截图作为窗口的背景
然后想根据不同条件
重绘地块儿
例如 播种 和 发芽 两个不同状态
我播种时怎么获取那个地块的区域 然后怎么重绘呢
望高手指导 谢谢了
才开始学习vc++ 因为作业的问题需要做那么个东西出来 不知道需要用到写什么函数 和 知识 请高手指点
...全文
251 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
degulala 2012-07-25
  • 打赏
  • 举报
回复
楼主,请问这个问题还记着呢没
FireBirdCN 2009-11-14
  • 打赏
  • 举报
回复
这个孙鑫老师的视频里有讲到~
liguangqang 2009-11-14
  • 打赏
  • 举报
回复
玩过方块游戏的人很多,这个思路是差不多的。
1.定义一个内存空间也是地的空间数组 char[x][y] 这个用于把地分为很多个小块。种了就置位没种清零
2.定义种子或都其它类。这些类其实就是有不同生长周期图片不一样点用空间不一样,也把它分为小块图片
可能种子就占用一个单位地,也就一个单片的图片。长大了占用好几个单片的地也就有好几个单片的图片组
成这时菜。菜就这么长大了
3.定时器来更新菜的生命周期,加点水更新得快,图片和内存空间相应变化。
4.种是用点哪个位置,就给就在内存空间置位
hzy694358 2009-11-14
  • 打赏
  • 举报
回复

当然先取出Rc,然后
InvalidateRect(&Rc,false)
liguangqang 2009-11-13
  • 打赏
  • 举报
回复
其实这种游戏都是将地分为很个小块,并也每个小块分配相应内存空间。如放一个菜,当然知道菜的大小,并为它分配这里内存,种在什么位置就占用这个的内存。长大了也就加大使用类存的空间。这是游戏常用的手法。
qzw405 2009-11-13
  • 打赏
  • 举报
回复
我想他问的重点是怎么获取那个地块的区域!我想用鼠标单击取坐标值的方法不能获取吗?
许文君 2009-11-13
  • 打赏
  • 举报
回复
InvalidateRect()区域
gg606 2009-11-12
  • 打赏
  • 举报
回复
CWnd::InvalidateRect()
这不是鸭头 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wfx_net 的回复:]
先确定你要重绘哪部分区域,取出它的RECT。
然后用BitBlt向那部分区域贴图就可以了。
[/Quote]..
skyworld2288 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hongya6088 的回复:]
获取每块土地的Rect,按照需求对其更新
[/Quote]

获取该块区域,然后对其修改,然后更新。
muzizongheng 2009-11-12
  • 打赏
  • 举报
回复
BitBlt
hongya6088 2009-11-12
  • 打赏
  • 举报
回复
获取每块土地的Rect,按照需求对其更新
fandh 2009-11-12
  • 打赏
  • 举报
回复
还有一种方法,就是设置DC的重绘的范围
另外,刷新一定的范围也可以!
wfx_net 2009-11-12
  • 打赏
  • 举报
回复
先确定你要重绘哪部分区域,取出它的RECT。
然后用BitBlt向那部分区域贴图就可以了。
wfx_net 2009-11-12
  • 打赏
  • 举报
回复
这些区域你当然要记下了。

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧